我直接从文档(https://babeljs.io/docs/en/plugins#plugin-development)中获取了这个插件示例
export default function() {
return {
visitor: {
Identifier(path) {
const name = path.node.name;
// reverse the name: JavaScript -> tpircSavaJ
path.node.name = name.split("").reverse().join("");
}
}
};
}
我的babel.config.js
文件是这样的:
module.exports = {
plugins: [
'transform-es2015-modules-commonjs',
'./babelPlugin.js',
],
presets: [
'@babel/env'
]
} ;
我使用babel testInput.js -o testOutput.js
命令运行Babel
但是我得到这个错误:
D:\Projects\Babel plugin test\babelPlugin.js:1
(function (exports, require, module, __filename, __dirname) { export default function() {
^^^^^^
SyntaxError: Unexpected token export
如果我使用export default
而不是module.exports =
,那么一切正常。
export default
为什么引起语法错误?
答案 0 :(得分:0)
Babel将编译testInput.js
,因为babel testInput.js -o testOutput.js
就是这样,但是配置中的任何内容都不会编译babelPlugin.js
。如果要使用ES6模块语法编写它,则需要先单独编译插件。