SyntaxError:在TypeScript CRA项目中运行笑话时出现意外的标识符

时间:2019-11-08 14:08:55

标签: typescript jestjs yarn babel create-react-app

我有一个带有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的jest配置中,我只有几个与覆盖率相关的配置。

我尝试运行yarn upgrade,发现很多babel依赖项从7.5.5升级到7.7.2,但是仍然存在相同的问题。

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

1 个答案:

答案 0 :(得分:1)

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

yarn add -D ts-jest

并将其添加到"jest"中的package.json下:

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