开玩笑设置“SyntaxError:意外的令牌导出”

新手上路,请多包涵

我正在对当前没有测试的现有项目实施测试。我的测试无法编译 node_modules/ 导入。

 /Users/me/myproject/node_modules/lodash-es/lodash.js:10
export { default as add } from './add.js';
^^^^^^
SyntaxError: Unexpected token export

  at transformAndBuildScript (node_modules/jest-runtime/build/transform.js:320:12)
  at Object.<anonymous> (app/reducers/kind_reducer.js:2:43)
  at Object.<anonymous> (app/reducers/index.js:12:47)

我发现的解决方法是在 package.json jest 配置 node_modules 列入“白名单”,如下所示:

 "jest": {
    "transformIgnorePatterns": [
      "!node_modules/"
    ]
  }

这似乎是一个 hack,因为运行一个导入 node_modules/lodash-es/lodash.js 的简单测试需要超过 1 分钟。

原文由 Cory Robinson 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 639
2 个回答

我必须将此添加到我的 .jestconfig

 "transformIgnorePatterns": [
  "<rootDir>/node_modules/(?!lodash-es)"
]

原文由 Yangshun Tay 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果其他解决方案都不适合您,您可以开玩笑地尝试一下

"moduleNameMapper": {
    "^lodash-es$": "lodash"
}

它将在测试运行时将 lodash-es 替换为 commonjs 版本。

原文由 Ozair Patel 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进