请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

路径有两个反斜杠,能教我代码具体写来解决这个问题吗?我的node基础不好。

dependencies: { ‘./message.js’: ‘./src\message.js’ }
下面时配置代码:
const fs = require(‘fs’)
const parser = require(’@babel/parser’)
const path = require(‘path’)
const traverse = require(’@babel/traverse’).default
const babel = require(’@babel/core’)

const muduleAnalyser = (filename) => {
const content = fs.readFileSync(filename, ‘utf-8’)
const ast = parser.parse(content, {
sourceType: ‘module’
})
const dependencies = {}
traverse(ast, {
ImportDeclaration ({ node }) {
const dirname = path.dirname(filename)
const newFile = ‘./’ + path.join(dirname, node.source.value)
dependencies[node.source.value] = newFile
}
})
const { code } = babel.transformFromAst(ast, null, {
presets: [’@babel/preset-env’]
})
return {
filename,
dependencies,
code
}
}
const moduleInfo = muduleAnalyser(’./src/index.js’)
console.log(moduleInfo)

正在回答

1回答

问题出在配置traverse的时候用的 path.join

traverse(ast, {
    ImportDeclaration({ node }) {
      const dirname = path.dirname(filename)
      // 下面如果是 path.join ,在 windows 系统中路径就是 ./src\message.js\
      // 会出现斜杠不一样的问题,用 path.posix.join 就能解决
      const newFile = './' + path.posix.join(dirname, node.source.value, '/')
      dependencies[node.source.value] = newFile
    }
})


1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号