在 Babeljs 配置中使用原生 ECMAScript 模块
Posted
技术标签:
【中文标题】在 Babeljs 配置中使用原生 ECMAScript 模块【英文标题】:Using native ECMAScript modules in Babeljs config 【发布时间】:2020-07-30 02:59:19 【问题描述】:对于将 babel 配置与原生 ECMAScript 模块以及在 package.json
中设置的 "type": "module"
一起使用,我非常非常困惑。据我了解 Babel 文档(here,在“支持的文件扩展名”下),它应该是可能的。但如果我尝试这样的配置:
const config = () =>
const presets = [
"@babel/preset-react",
[
"@babel/preset-env",
bugfixes: true,
useBuiltIns: "usage",
corejs: version: "3.6", proposals: true ,
,
],
];
const plugins = ["@babel/plugin-transform-runtime"];
return presets, plugins ;
;
export default config;
我收到Error while loading config - You appear to be using a native ECMAScript module configuration file, which is only supported when running Babel asynchronously
。
这是意料之中的,因为上述文档指出“本机 ECMAScript 模块是异步的”。唉,用async
/ await
喷洒上述配置并不能解决问题。我正在运行babel
到parcel
- 这是parcel
的问题吗?我误解了文档吗?如果有人能为我澄清一下,我真的很感激。
【问题讨论】:
【参考方案1】:我遇到了类似的问题,阅读 Babel 站点后,我得出的结论是,使用您的 babel 配置的任何东西都不是异步调用它。就我而言,这是开玩笑 26。
我通过将配置更改为 json 文件解决了这个问题 - babel.config.json
。
其他人已经将他们的配置文件更改为commonjs文件-babel.config.cjs
,那么您需要将您的配置文件更改为commonjs,即使用module.exports = rest of your config
【讨论】:
以上是关于在 Babeljs 配置中使用原生 ECMAScript 模块的主要内容,如果未能解决你的问题,请参考以下文章
发布使用 webpack 和 babeljs 构建的 npm 包
sh Memento npm命令,项目使用[Babel](https://babeljs.io/)
smart-transform取自 Atom 的 babeljs/coffeescript/typescript 智能转 es5 库