Jest:“SyntaxError:意外的令牌{”

时间:2017-08-04 18:22:26

标签: javascript reactjs meteor jestjs babel-jest

这是对反应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

2 个答案:

答案 0 :(得分:0)

您的测试是导入typescript js文件的ts个文件。根据您的配置

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

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

答案 1 :(得分:0)

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