【问题标题】:Jest: "SyntaxError: Unexpected token {"开玩笑:“语法错误:意外的令牌 {”
【发布时间】:2018-01-12 18:34:40
【问题描述】:

这是对 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 询问。

【问题讨论】:

    标签: javascript reactjs meteor jestjs babel-jest


    【解决方案1】:

    您的测试是 js 正在导入 typescript ts 文件的文件。根据你的配置,你有

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

    我猜这将使用 babel-jest 解析器而不是 typescript 编译器。您必须将测试编写为 ts 文件,然后让 typescript 发挥它的魔力。

    【讨论】:

    • 感谢您的回复,我认为您是对的,它需要是一个 .ts/.tsx 文件,但这仍然不能解决问题!问题更新了新的提交
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-01-15
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      • 2021-10-28
      • 2017-09-13
      • 2019-03-10
      • 1970-01-01
      相关资源
      最近更新 更多