javascript - 在 Babeljs 配置中使用原生 ECMAScript 模块

标签 javascript babeljs parceljs

我对将 babel 配置与原生 ECMAScript 模块和 "type": "module" 一起使用感到非常非常困惑。设置在 package.json .据我了解 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 .

这是预期的,因为上述文档指出“ native ECMAScript 模块是异步的”。唉,用 async 喷洒上述配置/await不能解决问题。我正在运行 babel通过parcel - 这是 parcel 的问题吗? ?我误解了文档吗?如果有人能为我澄清一下,我真的很感激。

最佳答案

我遇到了类似的问题,阅读 Babel 站点后,我得出结论,无论使用您的 babel 配置,都不会异步调用它。就我而言,它是开玩笑的 26 岁。
我通过将配置更改为 json 文件解决了这个问题 - babel.config.json .
其他人已将他们的配置文件更改为 commonjs 文件 - babel.config.cjs ,那么您需要将配置文件更改为 commonjs,即使用 module.exports = {rest of your config}

关于javascript - 在 Babeljs 配置中使用原生 ECMAScript 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61257559/

相关文章:

javascript - @parcel/核心 : No transformers found for static/actions. glb

jquery - 使用 parcel.js 导入 select2

javascript - 将每个字母更改为大写并将其括在括号中

javascript - IE 和 Firefox 中的文件按钮问题

reactjs - React-create-app 中 babel loader 的问题

javascript - Babel 6 转换运行时 : $export is not a function

parceljs - 我可以指定 Assets 的输出文件夹吗?

Javascript加载另一个js文件

javascript - 以下 Javascript 执行顺序是否正确?

javascript - babel-cli vs babel-preset-es2015 vs babel-register vs babel-core?