Skip to content

Commit

Permalink
add lessOrder function
Browse files Browse the repository at this point in the history
  • Loading branch information
chenshuai2144 committed Mar 24, 2020
1 parent f7d51fb commit f011d95
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 76 deletions.
22 changes: 4 additions & 18 deletions genModuleLess.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,10 @@
const glob = require('glob');
const uniqBy = require('lodash.uniqby');
const { winPath } = require('umi-utils');

const AddLocalIdentName = require('./AddLocalIdentName');
const replaceDefaultLess = require('./replaceDefaultLess');

// order:
// 0. other/**/index.less
// 1. other/**.less
// 2. site/theme/**/index.less
// 3. site/theme/**.less
const getLessOrder = filename => {
let order = 0;
if (filename.includes('index.less')) {
order += 1;
}
if (!filename.includes('site/theme')) {
order += 2;
}
return order;
};
const lessOrder = require('./lessOrder');

// read less file list
const genModuleLess = (parents, { isModule, filterFileLess }) => {
Expand All @@ -32,9 +18,9 @@ const genModuleLess = (parents, { isModule, filterFileLess }) => {
lessArray = [];
glob
.sync(winPath(`${parents}/**/**.less`), {
ignore: ['**/node_modules/**', '**/es/**', '**/lib/**', '**/dist/**', '**/_site/**'],

This comment has been minimized.

Copy link
@AshoneA

AshoneA Mar 28, 2020

Contributor

image

额... 改了这段本地会报错

This comment has been minimized.

Copy link
@chenshuai2144

chenshuai2144 Mar 30, 2020

Author Owner

把 es 也加进去了,我修一下

ignore: ['**/node_modules/**', '**/dist/**', '**/_site/**'],
})
.sort((a, b) => getLessOrder(a) - getLessOrder(b))
.sort((a, b) => lessOrder(a) - lessOrder(b))
.filter(filePath => {
if (
filePath.includes('ant.design.pro.less') ||
Expand Down
48 changes: 2 additions & 46 deletions getVariable.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,60 +4,16 @@ const uniqBy = require('lodash.uniqby');

const fileNameList = [];

function discardAndReport(less, result) {
function discardEmpty(node) {
const { type, nodes: sub } = node;

if (sub) {
node.each(discardEmpty);
}

if (
(type === 'decl' && !node.value) ||
(type === 'rule' && !node.selector) ||
(sub && !sub.length) ||
(type === 'atrule' && ((!sub && !node.params) || (!node.params && !sub.length)))
) {
if (
(node.selector && node.toString().includes('(') && node.selector.indexOf('.') === 0) ||
(node.toString().includes('@') && !node.toString().includes('{'))
) {
// should have same code
node.fileNameList = '';
} else {
node.remove();
}

result.messages.push({
type: 'removal',
plugin: 'postcss-discard-empty',
node,
});
}
}

less.each(discardEmpty);
}
const removeNoVarLessPlugin = postcss.plugin('LocalIdentNamePlugin', () => (less, result) => {
const removeNoVarLessPlugin = postcss.plugin('LocalIdentNamePlugin', () => less => {
less.walkAtRules(atRule => {
if (atRule.import) {
atRule.remove();
}
});
less.walkDecls(decls => {
const content = decls.toString();
if (
(!content.includes('@') && !content.includes('border')) ||
content.includes('padding') ||
content.includes('margin')
) {
decls.remove();
}
});

less.walkComments(decls => {
decls.remove();
});
discardAndReport(less, result);
});

const getVariable = (lessPath, lessText) =>
Expand Down
17 changes: 17 additions & 0 deletions lessOrder.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// order:
// 0. other/**/index.less
// 1. other/**.less
// 2. site/theme/**/index.less
// 3. site/theme/**.less
const lessOrder = filename => {
let order = 0;
if (filename.includes('index.less')) {
order += 1;
}
if (!filename.includes('site/theme')) {
order += 2;
}
return order;
};

module.exports = lessOrder;
13 changes: 2 additions & 11 deletions loopAllLess.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ const prettier = require('prettier');
const getVariable = require('./getVariable');
const replaceDefaultLess = require('./replaceDefaultLess');
const deleteRelativePath = require('./removeRelativePath');
const lessOrder = require('./lessOrder');

// read less file list
const loopAllLess = async (parents, ignore = ['**/node_modules/**', '**/lib/**', '**/es/**']) => {
Expand All @@ -27,17 +28,7 @@ const loopAllLess = async (parents, ignore = ['**/node_modules/**', '**/lib/**',
}
return 1;
})
.sort((a, b) => {
let aSortNumber = 0;
let bSortNumber = 0;
if (a.includes('index.less')) {
aSortNumber = 1;
}
if (b.includes('index.less')) {
bSortNumber = 1;
}
return bSortNumber - aSortNumber;
})
.sort((a, b) => lessOrder(a) - lessOrder(b))
.filter(filePath => {
if (
filePath.includes('ant.design.pro.less') ||
Expand Down
2 changes: 1 addition & 1 deletion test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const genCss = require('./index');

genCss(
'/Users/qixian.cs/Documents/GitHub/ant-design-pro',
'C:/github/ant-design-pro',
[
{
theme: 'dark',
Expand Down

0 comments on commit f011d95

Please sign in to comment.