Angular jest не понимает путь импорта после обновления до 27
Это странная ошибка. Я обновил jest до 27 и все перестало работать
Кажется, есть проблемы с путями импорта. Итак, следующие
import { something } form 'src/app/components/.....';
не работает, но это работает:
import { something } from '../../components/....';
Я предполагаю, что это управляется в tsconfig. Это мое
spec
tsconfig:
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/spec",
"types": [
"jest", // 1
"node",
"Chrome"
],
"esModuleInterop": true, // 2
"emitDecoratorMetadata": true, // 3
"allowSyntheticDefaultImports": true,
},
"files": ["src/test.ts", "src/polyfills.ts"],
"include": ["src/**/*.spec.ts", "src/**/*.d.ts"]
}
и основной tsconfig:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"importHelpers": true,
"target": "es2015",
"module": "es2020",
"lib": ["es2018", "dom"],
"types": [],
"paths": {
"@shared/*": ["src/shared/*"]
},
"skipLibCheck": true,
"allowSyntheticDefaultImports": true,
"noEmitHelpers": false
},
"files": ["src/main.ts", "src/polyfills.ts"],
"angularCompilerOptions": {
"strictTemplates": true,
"fullTemplateTypeCheck": true
}
}
Любые предложения, которые могут вызвать эту проблему с импортом
1 ответ
Добавление этой опции в
jest.config.js
должен решить эту проблему
moduleNameMapper: {
'^src/(.*)$': '<rootDir>/src/$1',
'^app/(.*)$': '<rootDir>/src/app/$1',
'^assets/(.*)$': '<rootDir>/src/assets/$1',
'^environments/(.*)$': '<rootDir>/src/environments/$1',
},