【问题标题】:SyntaxError: Unexpected identifier when running jest in TypeScript CRA projectSyntaxError:在 TypeScript CRA 项目中运行 jest 时出现意外标识符
【发布时间】:2020-03-05 04:19:28
【问题描述】:

我有一个带有 TypeScript 的 create-react-app 项目。我最近在我的项目中添加了几个包(特别是material-ui-dropzone@azure/storage-blob),突然我所有的测试都失败了,因为我没有真正接触过的文件中有SyntaxError。我见过其他人在 es6 导入和 babel 转换方面遇到问题,但这个错误似乎有点不同。 yarn startyarn build 工作没有任何问题。这是yarn test 的输出:

/<projectPath>/src/Shared/utils/authorizer.ts:27
    private constructor() {
            ^^^^^^^^^^^
SyntaxError: Unexpected identifier
     9 | import Log from 'Core/debugLog/Log';
    10 | import { Guid } from 'guid-typescript';
  > 11 | import { Authorizer } from 'Shared/utils/authorizer';
       | ^
    12 | import { AppInsights } from 'Shared/utils/appInsights';
    13 | import { OperationDefinitionNode } from 'graphql';
    14 |
    at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:537:17)
    at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:579:25)
    at Object.<anonymous> (src/Core/graphql/graphQlConfig.ts:11:1)

package.json 的我开玩笑的配置中,我只有几个与覆盖率相关的配置。

我尝试运行yarn upgrade,并注意到很多 babel 依赖项从 7.5.5 升级到 7.7.2,但同样的问题仍然存在。

请询问我是否可以提供任何其他信息来帮助诊断问题。

【问题讨论】:

    标签: typescript jestjs babeljs create-react-app yarnpkg


    【解决方案1】:

    我终于通过添加ts-jest解决了这个问题:

    yarn add -D ts-jest
    

    并在"jest"package.json 下添加这个:

    "transform": {
      "^.+\\.tsx?$": "ts-jest"
    },
    

    【讨论】:

      猜你喜欢
      • 2019-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      • 2020-09-23
      • 2020-05-15
      • 1970-01-01
      相关资源
      最近更新 更多