我还看到了其他一些答案和GitHub问题来描述这一点,但是我仍无法找到适合自己的解决方案。我在尝试开玩笑时得到了可怕的SyntaxError: Unexpected token export

project/node_modules/@agm/core/index.js:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){export * from './directives';

运行这些测试的代码可以正常工作。错误似乎来自玩笑本身。似乎开玩笑正在转换文件,但我可能是错的。

我开玩笑的配置是
"jest": {
  "preset": "jest-preset-angular",
  "setupTestFrameworkScriptFile": "<rootDir>/setup-jest.ts",
  "transformIgnorePatterns": [
    "node_modules"
  ]
}

我尝试将transformIgnorePatterns更新为"<rootDir>/node_modules/(?!@agm)""node_modules/(?!@agm)""node_modules/(?!@agm/core)",但是这些似乎都没有任何区别。

我怎样才能开玩笑地正确处理从@agm/core导入的文件?

最佳答案

为了使它起作用,我需要进行一些更改。这可以解决在将Jest与Angular 6应用程序一起使用@agm/core时的问题。

yarn add --dev babel-preset-env

您应该已经有了babel-jest

然后更新您的笑话配置:
"transform": {
  "^.+\\.js": "<rootDir>/node_modules/babel-jest"
},
"transformIgnorePatterns": [
  "<rootDir>/node_modules/(?!@agm)"
]

如果您没有.babelrc,则还需要添加它来使用:
{
  "presets": ["babel-preset-env"]
}

这可能适用于需要安装babel转换的其他库。

关于javascript - 意外的 token 导出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52651907/

10-10 23:48