我正在尝试动态替换“import”语句。
以下是一个例子,检查导入是否以 Plus 结尾。
这会导致错误。
问题在于replaceWithSourceString将字符串用圆括号包裹起来。
以下是一个例子,检查导入是否以 Plus 结尾。
module.exports = function(babel) {
return {
visitor: {
ImportDeclaration: function(path, state) {
// import abc from "./logic/+"
if( ! path.node.source.value.endsWith("/+"))
return;
path.replaceWithSourceString('import all from "./logic/all"')
}
}
}
}
这会导致错误。
SyntaxError: src/boom.js: Unexpected token (1:1) - make sure this is an expression.
> 1 | (import all from "./logic/all")
问题在于replaceWithSourceString将字符串用圆括号包裹起来。
如果我将replaceWithSourceString更改为
path.replaceWithSourceString('console.log("Hi")')
这个有效... ¯_(ツ)_/¯
任何帮助都将是伟大的。
babel
吗?我认为它应该在独立模式下也是可用的。 - loganfsmyth