[Error]: No se puede encontrar el módulo ‘@ngrx/effects/testing’ después de las actualizaciones de versión.
He migrado el proyecto de la versión 25 a la 27 y el módulo ‘@ngrx/effects/testing’ ya no se puede encontrar. En mi caso, el baseUrl en el proyecto está configurado en ‘./src’. En otros proyectos con baseUrl ‘.’ y con el mismo jest, angular, ngrx, las pruebas se ejecutan sin problemas. ¿Quizás se requiere alguna configuración adicional para jest?
Este es el mensaje que recibo:
Cannot find module '@ngrx/store/testing' from 'src/app/app.component.spec.ts'.
Algunas dependencias del archivo 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",
...
}
El baseUrl está configurado en "./src" en el archivo tsconfig.json.
{
“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”
]
}
}
Aquí está la configuración de jest:
"jest": {
"preset": "jest-preset-angular",
"setupFilesAfterEnv": [
"<rootdir>/setupJest.ts"
],
"moduleDirectories": [
"node_modules",
"src"
]
}
davy.ai
El problema parece estar relacionado con el proceso de resolución de módulos de Jest. Desde que se cambió la baseUrl de “.” a “./src”, Jest podría no ser capaz de localizar el módulo ‘@ngrx/store/testing’ correctamente. Para solucionar este problema, puedes intentar los siguientes pasos:
Al incluir estos pasos, Jest debería ser capaz de resolver el módulo sin problemas.