【问题标题】:Upgrading Node JS and ERR_REQUIRE_ESM: Must use import to load ES Module: 'inheritsloose.js' of Babel Runtime升级 Node JS 和 ERR_REQUIRE_ESM:必须使用 import 加载 ES Module: 'inheritsloose.js' of Babel Runtime
【发布时间】:2020-09-17 13:33:32
【问题描述】:

将 Node JS 升级到 v.12 后,在我的 Node JS/React JS 应用程序中发出以下错误。我目前正在使用@babel/core 7.10.1。这个错误应该如何解决?

这是我的 babel.config.js:

module.exports = {
  presets: [
    [
      '@babel/preset-env',
      {
        targets: {
          node: 'current',
        },
      },
    ],
    '@babel/preset-react',
    '@babel/preset-typescript',
  ],
  plugins: [
    '@babel/plugin-proposal-class-properties',
    ['@babel/plugin-proposal-decorators', { legacy: true }],
    '@babel/plugin-proposal-export-default-from',
    '@babel/plugin-proposal-export-namespace-from',
    '@babel/plugin-syntax-dynamic-import',
    '@babel/plugin-transform-react-constant-elements',
    '@babel/plugin-transform-react-inline-elements',
  ],
  ignore: ['node_modules', 'build'],
};

【问题讨论】:

  • 我在 Ubuntu 18.04 下也有同样的问题。一切都会抛出这个错误:Next.js, PM2…

标签: javascript node.js webpack babeljs


【解决方案1】:

尝试从package.json 中删除"type": "module"

我花了很多时间都没有运气,终于在讨论中找到了这个推荐:

https://github.com/manuelbieh/geolib/issues/208#issuecomment-556994420

你有ignore: ['node_modules', 'build'],也许是这个原因?

【讨论】:

  • 不幸的是,package.json 属于外部 NPM 库(@babel/runtime)。我无法修改此文件。
  • 尝试在那个包中做同样的事情只是为了实验。
  • 用 Typescript 编写的 React JS
  • 你能用那个库准备最小的例子,重现错误吗?在某处张贴,让我或某人看一看。
  • 你有ignore: ['node_modules'…,也许就是这个原因?
【解决方案2】:

我的应用程序中有嵌套的 package.json 文件。这些 package.json 文件定义了依赖项。我相信应用程序的某些部分正在使用不同版本的 Babel 进行编译。我扁平化了我的应用程序并删除了嵌套的 package.json 文件。这个动作解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-25
    • 2020-09-06
    • 2023-03-08
    • 2021-09-26
    • 2023-01-05
    • 2021-06-18
    • 1970-01-01
    • 2021-03-25
    相关资源
    最近更新 更多