mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
* [bugfix] Checkbox border render error in weixin browser * [bugfix] TreeSelect dependency path error * [bugfix] Swipe should clear autoplay timer when destroyed * [bugfix] Optimize component dependency analyze when build style entry * merge * update yarn.lock * update README.md * update README.md * update README.md * update README.md * update README.md * [Doc] add more badges in README.md * update README.md * [bugfix] Address & Contact list style * fix: contact test cases * [bugfix] popup style missing when build style entry
40 lines
1.3 KiB
JavaScript
40 lines
1.3 KiB
JavaScript
/**
|
|
* Build style entry of all components
|
|
*/
|
|
|
|
const fs = require('fs-extra');
|
|
const path = require('path');
|
|
const components = require('./get-components')();
|
|
const dependencyTree = require('dependency-tree');
|
|
|
|
components.forEach(componentName => {
|
|
const libDir = path.resolve(__dirname, '../../lib');
|
|
const content = analyzeDependencies(componentName, libDir).map(component => `require('../../vant-css/${component}.css');`);
|
|
fs.outputFileSync(path.join(libDir, componentName, './style/index.js'), content.join('\n'));
|
|
});
|
|
|
|
// Analyze component dependencies
|
|
function analyzeDependencies(componentName, libDir) {
|
|
const checkList = ['base'];
|
|
search(dependencyTree({
|
|
directory: libDir,
|
|
filename: path.resolve(libDir, componentName, 'index.js'),
|
|
filter: path => path.indexOf('vant/lib/') !== -1
|
|
}), checkList);
|
|
return checkList.filter(component => checkComponentHasStyle(component));
|
|
}
|
|
|
|
function search(tree, checkList) {
|
|
tree && Object.keys(tree).forEach(key => {
|
|
search(tree[key], checkList);
|
|
const component = key.split('/vant/lib/')[1].replace('/index.js', '').replace('mixins/', '');
|
|
if (checkList.indexOf(component) === -1) {
|
|
checkList.push(component);
|
|
}
|
|
});
|
|
}
|
|
|
|
function checkComponentHasStyle(componentName) {
|
|
return fs.existsSync(path.join(__dirname, '../../lib/vant-css/', `${componentName}.css`));
|
|
}
|