@dworld/danwo
v1.0.11
Published
danwo core package
Downloads
3
Readme
danwo
安装
npm install danwo --save-dev
API
const danwo = require('danwo');
// 根据config.range扫描整个工程,config.range为一个glob字符窜或glob字符串数组
danwo.scan(config).then((res) => {
console.log(res);
});
// 根据config.range对整个工程进行校验
danwo.validate(config);
// 根据用户输入,创建dw-custom
danwo.dwCustom(options);
// 根据config.range扫描整个工程的vue文件,把/deep/ selector替换为:deep(selector)
danwo.deepSeector(config);
config配置
// 工具包提供默认配置
const path = require('path')
const cwd = process.cwd()
module.exports = {
range: './src/**/*.*',
output: {
type: 'xlsx',
fileName: './relation/dep.xlsx'
},
alias: {
'@/': path.resolve(cwd, './src'),
'utils': path.resolve(cwd, './src/utils'),
'config': path.resolve(cwd, './config'),
'components': path.resolve(cwd, './src/components')
},
ext: [
'.js', '.ejs', '.ts', '.vue'
],
// 依赖关系校验规则
depRules: [
{
test: /\/src\/view/, // 主文件路径匹配规则
// 依赖文件校验规则
validate(sourcePath, targetPath) {
const regular = /\/src\/views\/([\w\-]+)/
const sourceRes = sourcePath.match(regular)
const targtRes = targetPath.match(regular)
if (sourceRes && targtRes && sourceRes[1] != targtRes[1] && targtRes[1] != 'components') {
return false
}
return true
},
errorMsg: '页面之间不允许相互依赖'
}, {
test: /\/src\/components\//,
validate(sourcePath, targetPath) {
return !targetPath.includes('/src/views/')
},
errorMsg: 'components不允许依赖src'
},
],
// import方法调用校验
importRule: {
exclude: /^src\/router\//,
errorMsg: '业务代码不允许使用import方法'
},
npmModules: {
exclude: /\.(css|less|sass)$/,
errorMsg: '不允许直接引用npm包的文件'
}
}