Nodemon 和 Jest,仅在异步运行 Babel 时支持

Leo*_*rra 4 node.js nodemon jestjs

我正在尝试运行 Jest,但此错误始终阻止我运行任何测试:

Error while loading config - 
You appear to be using a native ECMAScript module configuration file, which is only supported when running Babel asynchronously.

at loadCjsOrMjsDefault (node_modules/@babel/core/lib/config/files/module-types.js:59:13)
          at loadCjsOrMjsDefault.next (<anonymous>)
      at readConfigJS (node_modules/@babel/core/lib/config/files/configuration.js:174:47)
          at readConfigJS.next (<anonymous>)
      at Function.<anonymous> (node_modules/@babel/core/lib/gensync-utils/async.js:16:3)
      at evaluateSync (node_modules/gensync/index.js:251:28)
      at Function.sync (node_modules/gensync/index.js:89:14)
      at sync (node_modules/@babel/core/lib/gensync-utils/async.js:56:25)
      at sync (node_modules/gensync/index.js:182:19)
Run Code Online (Sandbox Code Playgroud)

我正在使用nodemonsucrase运行我的服务器(如果相关的话)。

我的巴贝尔配置

Error while loading config - 
You appear to be using a native ECMAScript module configuration file, which is only supported when running Babel asynchronously.

at loadCjsOrMjsDefault (node_modules/@babel/core/lib/config/files/module-types.js:59:13)
          at loadCjsOrMjsDefault.next (<anonymous>)
      at readConfigJS (node_modules/@babel/core/lib/config/files/configuration.js:174:47)
          at readConfigJS.next (<anonymous>)
      at Function.<anonymous> (node_modules/@babel/core/lib/gensync-utils/async.js:16:3)
      at evaluateSync (node_modules/gensync/index.js:251:28)
      at Function.sync (node_modules/gensync/index.js:89:14)
      at sync (node_modules/@babel/core/lib/gensync-utils/async.js:56:25)
      at sync (node_modules/gensync/index.js:182:19)
Run Code Online (Sandbox Code Playgroud)

我的package.json

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

Mal*_*ous 9

我认为问题是你package.json说你正在使用 ES6 模块,但你的 Babel 配置使用的module.exports是 CommonJS (不是 ES6 模块)。

我将其重命名babel.config.jsbabel.config.cjs,这解决了问题。我想你也可以改变,module.exportsexport default我还没有尝试过。

  • 哇,将其从 js 更改为 cjs 确实有效,非常感谢!注意:仅将其更改为导出默认值是行不通的。 (6认同)