Jest: 语法错误:未预期的令牌'export'。

3
我在package.json文件中添加了以下内容:
"scripts": {
  "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js"
},
"jest": {
  "testEnvironment": "jest-environment-node",
  "transform": {}
},
"type": "module",

这应该足够了:https://jestjs.io/docs/ecmascript-modules 然而,我仍然遇到错误:
export {
^^^^^^ SyntaxError: 意外的标记 'export'
错误源自依赖项:node_modules\object-array-utils
Node 版本为 v17.4.0

1
错误的源头是什么,即哪个文件引起了问题?它是来自您的代码还是第三方库? - szaman
@szaman 来自依赖项 node_modules\object-array-utils(我们更新了问题) - user2923322
软件包在3小时前发布,你是作者吗? - szaman
@szaman 是的,我是的(我正在跨项目使用这些辅助工具,因此我们制作了一个库) - user2923322
1个回答

3

我觉得您所使用的包存在问题。它试图使用ES模块语法(import / export),但为了实现这一点,需要在package.json文件中声明:

{
  "type": "module",
  ...
}

请参考这篇指南,了解有关ES模块的更多信息。
附:对于类似的错误/未来遇到此问题的人:请确定错误来自哪个软件包,并查看如果删除该软件包是否仍然会发生错误。如果不是,则问题出在软件包上。如果您看到不同文件的相同错误,则可能存在Jest配置问题。

为什么“type”不是默认的“module”?嗯 - user2923322
2
由于ES模块相对较新,很可能是为了向后兼容性。 - szaman
看来即使将NodeJS升级到最新版本也不行。天哪。 - user2923322
但是嘿,非常感谢你的帮助!! - user2923322

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接