未找到 ./src/polyfills.ts 模块中的错误:错误:无法解析“zone.js/dist/zone”

Ric*_*cha 3 unit-testing jasmine typescript karma-runner angular

我有一个 angular 8,它使用 karma/jasmine 来运行一些单元测试。我可以通过执行以下命令来运行测试,ng test但出现以下错误:

找不到 ./src/polyfills.ts 模块中的错误:错误:无法解析 'C:\PrjNET\Elevation3\FW\4.00\Project\Framework\Development\Client\ElevationJS 中的 'zone.js/dist/zone' \shell\src' 解析 'C:\PrjNET\Elevation3\FW\4.00\Project\Framework\Development\Client\ElevationJS\shell\src' 中的 'zone.js/dist/zone'

有谁知道怎么解决?

Ahm*_*san 8

zone-testing仅存在于0.8.19. 尝试安装最新版本。使用:

npm i zone.js
Run Code Online (Sandbox Code Playgroud)

上面的命令适用于我的情况。


dja*_*fan 7

我用这个命令在我的项目中修复了它:

npm install zone.js@0.11.3 --save
Run Code Online (Sandbox Code Playgroud)

我使用zone.js@0.8.29.


Wil*_*Hou 6

改变

   zone.js/dist/zone
Run Code Online (Sandbox Code Playgroud)

   zone.js
Run Code Online (Sandbox Code Playgroud)

对于我来说,更新版本不起作用

我检查了使用“ng new project”创建的项目,在“polyfills.ts”文件中,它是“zone.js”而不是“zone.js/dist/zone”

所以我将其更改为“zone.js”,它开始工作。

错误: 在此输入图像描述

正确的: 在此输入图像描述


Ric*_*cha 4

我发现我的测试配置tsconfig.spec.json是错误的。所以我改变了:

{
  "extends": "./tsconfig.es5.json",
  "compilerOptions": {
    "outDir": "../out-tsc/spec",
    "module": "commonjs",
    "target": "es6",
    "baseUrl": "",
    "types": [
      "jest",
      "node"
    ]
  },
  "files": [
    "test.ts",
    "polyfills.ts"
  ],
  "include": [
    "**/*.spec.ts",
    "**/*.d.ts"
  ]
}
Run Code Online (Sandbox Code Playgroud)

对此:

{
  "extends": "./tsconfig.es5.json",
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "outDir": "../out-tsc/spec",
    "module": "commonjs",
    "types": [
      "jasmine",
      "node"
    ]
  },
  "files": [
    "test.ts",
    "polyfills.ts"
  ],
  "include": [
    "**/*.spec.ts",
    "**/*.d.ts"
  ]
}
Run Code Online (Sandbox Code Playgroud)

并且错误消失了!

  • 如果不知道有效的组合配置,这个答案就没有多大帮助。 (3认同)