Jest: "SyntaxError: Unexpected token {"

Jest: "SyntaxError: Unexpected token {"

这是对 react DOM 单元测试的笑话教程示例的一个非常简单的改动。我有一个计数器组件,我想测试它是否有效。你可以在底部看到我的提交。

错误: SyntaxError: Unexpected token {

.test.js 文件中只有 2 个 {,当我删除 jsx ={1} 并将其替换为 ="1" 时,它并没有消除错误。另一个{在函数调用中() => {

更新 1(对答案的回应)

我已将 .test.js 文件更改为 test.tsx ,并对计数器组件进行了更改以允许字符串删除 jsx {} 和唯一的其他 { 除了函数构造函数。

https://github.com/Falieson/react15-meteor1.5-typescript2.4/commit/36a327e79700b5532258f7fb8a171122ed260329

更新 2

通过尝试揭露这个问题,我发现这个错误只发生在我的工作机器上,而不是我个人的开发机器上。这是适用于我的机器但不适用于我的工作机器的代码。 https://github.com/Falieson/react-typescript-meteor

更新 3 当我 运行 npm run test:jest 但当我 运行 meteor npm run test:jest 时,我没有从开玩笑中得到任何问题,我会去问 meteor boards .

您的测试是 js 个正在导入打字稿 ts 个文件的文件。根据您的配置,您有

'^.+\.jsx?$': 'babel-jest'

我猜它会使用 babel-jest 解析器而不是 typescript 编译器。您必须将测试编写为 ts 文件,让打字稿发挥其魔力。

对于遇到这个问题的任何其他人,我建议将 Meteor 更新到最新的 1.6-beta*,这样您就可以获得节点 8 而不是依赖节点 4。正如在 OP 中链接的流星论坛线程中讨论的那样,节点 4是问题。