@tarojs/cli/src/convert/helper.ts的analyzeImportUrl函数只对绝对地址和相对地址的文件做处理,没有对只是模块名的做处理
自己加了处理代码:
let pathArr = sourceFilePath.split('/')
let dirPath = ''
pathArr.forEach((ele, ind) => {
dirPath += ele + '/'
let vpath = resolveScriptPath(path.resolve(dirPath, 'miniprogram_npm', value))
if (vpath) {
if (fs.existsSync(vpath)) {
if (fs.lstatSync(vpath).isDirectory()) {
if (fs.existsSync(path.join(vpath, 'index.js'))) {
vpath = path.join(vpath, 'index.js')
} else {
printLog(processTypeEnum.ERROR, '引用目录', `文件 ${sourceFilePath} 中引用了目录 ${value}!`)
return
}
}
scriptFiles.add(vpath)
}
}
})
@tarojs/cli/src/convert/index.ts的parseAst函数缺少对(export * from './lib/utils/request')这种es6模块化加载的处理
自己加了处理代码:
ExportAllDeclaration (astPath) {
const node = astPath.node
const source = node.source
const value = source.value
analyzeImportUrl(sourceFilePath, scriptFiles, source, value)
}