加载配置时出错 - 您似乎正在使用本机 ECMAScript 模块配置文件 (Jest)

tks*_*con 19 node.js express jestjs babeljs babel-jest

更新。

当我发出拉取请求时出现此错误。有一个 github 工作流审计,它对拉取请求运行检查,并从另一个存储库加载测试文件。

- name: Run Audits
      run: npx jest audits/ch-2 --json --outputFile=audits/ch-2.json --noStackTrace


Test suite failed to run

    /Users/frankukachukwu/StudioProjects/covid-19-estimator-tksilicon-js/babel.config.js: Error while loading config - You appear to be using a native ECMAScript module configuration file, which is only supported when running Babel asynchronously.
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

dhi*_*ilt 41

除了“cjs”解决方案之外,我还可以通过转换为解决此babel.config.js问题babel.config.json

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "node": "current"
        }
      }
    ],
    "@babel/preset-typescript"
  ]
}
Run Code Online (Sandbox Code Playgroud)


tks*_*con 37

已解决:对于遇到此问题的任何人。这与 Babel 设置有关。babel.config.extension 使用 .mjs、cjs 或 js 扩展名。在我运行 LTE 节点 12.6.2 的情况下。我需要在目录 babel.config.cjs 的根目录下进行此配置。当使用“type”=“module”时,cjs 适用于 Nodejs。在 babel docs 上查看更多关于它的信息。

module.exports = {
  presets: [
    [
      '@babel/preset-env',
      {
        targets: {
          node: 'current'
        }
      }
    ]
  ]
};
Run Code Online (Sandbox Code Playgroud)

jest.config.cjs 也是根目录。

  • 将 babel.config.js 重命名为 babel.config.cjs 对我来说是这样!谢谢。 (33认同)
  • @Amesys我读到cjs意味着commonJS,我一直在使用带有--experimental-modules的节点,所以我猜测.js默认为模块(导入)而不是commonJS(需要)。 (3认同)