[Bug]:版本更新后找不到模块'@ngrx/effects/testing'

[Bug]: Cannot find module '@ngrx/effects/testing' after version updates

我将项目从版本 25 迁移到版本 27,但找不到模块“@ngrx/effects/testing”。在我的例子中,项目中的 baseUrl 设置为“./src”。在其他项目中,baseUrl 为“.”。同样开玩笑,angular,ngrx 测试 运行 没有问题。也许需要一些额外的 jest 配置?

这是我收到的消息:

Cannot find module '@ngrx/store/testing' from 'src/app/app.component.spec.ts'.

来自 package.json 的一些依赖项:

"dependencies": {
    "@angular/animations": "13.0.2",
    "@angular/common": "13.0.2",
    "@angular/core": "13.0.2",
    "@angular/forms": "13.0.2",
    "@angular/localize": "^13.0.2",
    "@angular/platform-browser": "13.0.2",
        ...
    "@ngrx/effects": "13.0.1",
    "@ngrx/entity": "13.0.1",
    "@ngrx/store": "13.0.1",
}
"devDependencies": {
 "@types/jest": "27.0.3",
   "jest": "^27.4.3",
    "jest-junit": "13.0.0",
    "jest-marbles": "3.0.1",
    "jest-preset-angular": "^11.0.1",
      ...
}

BaseUrl 在 tsconfig.json.

中设置为“./src”
{
  "compileOnSave": false,
  "compilerOptions": {
    "skipLibCheck": true,
    "resolveJsonModule": true,
    "baseUrl": "./src",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    "module": "es2020",
    "esModuleInterop": true,
    "lib": [
      "es2018",
      "dom"
    ]
  }
}

这是最有趣的配置:

"jest": {
    "preset": "jest-preset-angular",
    "setupFilesAfterEnv": [
      "<rootDir>/setupJest.ts"
    ],
    "moduleDirectories": [
      "node_modules",
      "src"
    ]
  }

更新:此错误已在 v13.0.2 中解决

这是一个已知问题,已在 https://github.com/ngrx/platform/issues/3248 中解决,将包含在下一版本的 ngrx 中。

在那之前你可以安装夜间版本,https://ngrx.io/guide/nightlies