我还看到了其他一些答案和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/