Open ltaoo opened 5 years ago
在 Windows 下,如果我有如下配置:
{ source: { components: './src/components', docs: './docs', } }
src/components内有PrefixInput文件夹。
src/components
PrefixInput
期望返回的filesTree应该是:
filesTree
{ components: { PrefixInput: { // ... }, }, docs: { //... }, }
但实际返回的是:
{ components: { src: { components: { PrefixInput: { // ... }, } }, }, docs: { //... }, }
查看源码,在utils/source-data.js中,
utils/source-data.js
function getPropPath(filename, sources) { return sources.reduce(function (f, source) { console.log(f, source, f.replace(source, '')); return f.replace(source, ''); }, filename.replace(new RegExp("".concat(path.extname(filename), "$")), '')).replace(/^\.?(?:\\|\/)+/, '').split(rxSep); }
console.log的输出是:
console.log
src\components\PrefixInput\demo\basic src/components src\components\PrefixInput\demo\basic
因为在bisheng.config.js中使用的路径分割符是斜杠,但文件路径会变成反斜杠,就无法正确replace掉了。
bisheng.config.js
replace
以及,能否在bisheng-data-loader.js调用picker时传入bishengConfig? 在antd themeConfig中,components pick会筛选出组件文件,但写死了/^components/,实际可能是/src/components,我希望能在这里获取到bishengConfig.source,就可以正确筛选了。
bisheng-data-loader.js
picker
bishengConfig
antd themeConfig
components pick
/^components/
/src/components
bishengConfig.source
在 Windows 下,如果我有如下配置:
src/components
内有PrefixInput
文件夹。期望返回的
filesTree
应该是:但实际返回的是:
查看源码,在
utils/source-data.js
中,console.log
的输出是:因为在
bisheng.config.js
中使用的路径分割符是斜杠,但文件路径会变成反斜杠,就无法正确replace
掉了。pick 增加参数
以及,能否在
bisheng-data-loader.js
调用picker
时传入bishengConfig
? 在antd themeConfig
中,components pick
会筛选出组件文件,但写死了/^components/
,实际可能是/src/components
,我希望能在这里获取到bishengConfig.source
,就可以正确筛选了。