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

Posted

技术标签:

【中文标题】加载配置时出错 - 您似乎正在使用本机 ECMAScript 模块配置文件 (Jest)【英文标题】:Error while loading config - You appear to be using a native ECMAScript module configuration file (Jest) 【发布时间】:2020-07-23 13:06:19 【问题描述】:

已更新。

当我提出拉取请求时出现此错误。有一个 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.

我该如何解决这个问题?

【问题讨论】:

你没有jest.config.js 吗? 使用 nodejs 更让我惊讶你需要 babel 没有朱利安,请问我该怎么办? 你用import还是require @Gaz_Edge 已修复。 【参考方案1】:

已解决:适用于遇到此问题的任何人。这与 Babel 设置有关。 babel.config.extension 使用 .mjs、cjs 或 js 扩展名。在我运行 LTE Node 12.6.2 的情况下。我需要在我的目录 babel.config.cjs 的根目录下进行此配置。 cjs 是使用“type”="module" 时适用于 Nodejs 的内容。 See more about it here on babel docs.

module.exports = 
  presets: [
    [
      '@babel/preset-env',
      
        targets: 
          node: 'current'
        
      
    ]
  ]
;

还有 jest.config.cjs 在根目录。

【讨论】:

将 babel.config.js 重命名为 babel.config.cjs 为我做到了!谢谢。 @pbatey 哇,你怎么解释这个?!无论如何,谢谢哥们为我节省了时间。 @Amesys 我读到 cjs 表示 commonJS,我一直在使用带有 --experimental-modules 的节点,所以我猜测 .js 默认为模块(导入)而不是 commonJS(需要)。 【参考方案2】:

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


  "presets": [
    [
      "@babel/preset-env",
      
        "targets": 
          "node": "current"
        
      
    ],
    "@babel/preset-typescript"
  ]

【讨论】:

以上是关于加载配置时出错 - 您似乎正在使用本机 ECMAScript 模块配置文件 (Jest)的主要内容,如果未能解决你的问题,请参考以下文章

保存/加载 C++ 数据时出错

使用打字稿配置本机反应时出错

在 python 3.4 中导入 tensorflow 时出错“无法加载本机 TensorFlow 运行时”

405 访问文件时出错

在 Pig 中使用 Hcatalog 加载配置单元表时出错

运行反应本机应用程序时出错-检查`App`的渲染方法