在小型节点项目上使用 babel 和 preset-env,无法将 import/export 语句转换为 commonjs
Using babel with preset-env on a small node project, unable to convert import/export statements to commonjs
我正在尝试设置一个节点项目,以便我可以使用常见的 import/export 语法,并且为了兼容性,使用 babeljs 将 import
和 export
语句转换为require
s.
当我尝试使用 babel 进行转译时,我没有看到任何变化,我也不知道为什么。
这是我的 babel.config.js
// babel.config.js
module.exports = {
// I thought this was what I would need to add for making the changes, based on the docs
plugins: ["@babel/plugin-transform-modules-commonjs"],
// env takes care of the majority of changes I might need to convert code to make
// easy to run on a wider range of machines
presets: [
[
"@babel/preset-env",
{
targets: {
// target an older version where I know there is no ESM support
node: "10"
}
}
]
],
// this was in the docs too - I'm not sure if I need it TBH
sourceType: "module"
}
我在一个目录中有一堆使用 import/export
和 async/await
的代码,我想将它们转换并放入另一个目录 lib
.
这是我正在使用的命令:
npx babel src --out-dir lib
我的 package.json 文件也在网上,那里没有什么太深奥的。我试着忠实地遵循文档。
我希望看到代码发生变化,用库中的 require 替换 import/export 调用,但我并不高兴。
我在这里做错了什么?我在 6-7 个月前从事一个相关项目,在那里我像这样使用 babel,它 确实 为我做了更改。
你可以看到 branch with the problem code on github, with the package.json, and here's the source code for other project mentioned where it is working.
SO 评论的同胞们,请保持温柔 - 我正在尽力而为,真的。
看起来您使用的是 "babel-cli": "^6.26.0"
而不是 "@babel/cli": "^7.11.6"
应该可以解决这个问题。
我正在尝试设置一个节点项目,以便我可以使用常见的 import/export 语法,并且为了兼容性,使用 babeljs 将 import
和 export
语句转换为require
s.
当我尝试使用 babel 进行转译时,我没有看到任何变化,我也不知道为什么。
这是我的 babel.config.js
// babel.config.js
module.exports = {
// I thought this was what I would need to add for making the changes, based on the docs
plugins: ["@babel/plugin-transform-modules-commonjs"],
// env takes care of the majority of changes I might need to convert code to make
// easy to run on a wider range of machines
presets: [
[
"@babel/preset-env",
{
targets: {
// target an older version where I know there is no ESM support
node: "10"
}
}
]
],
// this was in the docs too - I'm not sure if I need it TBH
sourceType: "module"
}
我在一个目录中有一堆使用 import/export
和 async/await
的代码,我想将它们转换并放入另一个目录 lib
.
这是我正在使用的命令:
npx babel src --out-dir lib
我的 package.json 文件也在网上,那里没有什么太深奥的。我试着忠实地遵循文档。
我希望看到代码发生变化,用库中的 require 替换 import/export 调用,但我并不高兴。
我在这里做错了什么?我在 6-7 个月前从事一个相关项目,在那里我像这样使用 babel,它 确实 为我做了更改。
你可以看到 branch with the problem code on github, with the package.json, and here's the source code for other project mentioned where it is working.
SO 评论的同胞们,请保持温柔 - 我正在尽力而为,真的。
看起来您使用的是 "babel-cli": "^6.26.0"
而不是 "@babel/cli": "^7.11.6"
应该可以解决这个问题。