vue.js - Ts-Jest Typescript diagnóstico: error TS2307: No se puede encontrar el módulo
Estoy usando ts-jest en un proyecto de Vue que contiene una mezcla de archivos js y ts. El proyecto usa el carácter @ para el mapeo relativo de importaciones al directorio src/renderer/. TS está mostrando advertencias de que no puede encontrar el módulo. Puedo ignorar la advertencia y ejecutar las pruebas haciendo:
globals: {
'ts-jest': {
/* Fails on mapped import syntax without this.*/
diagnostics: {
ignoreCodes: ['2307'],
},
},
},
pero me gustaría que la importación funcionara como se pretende.
jest.config.js
module.exports = {
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'vue'],
transform: {
'^.+\\.js$': '<rootDir>/node_modules/babel-jest',
'.*\\.(vue)$': 'vue-jest',
'.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
'^.+\\.tsx?$': 'ts-jest',
},
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/renderer/$1',
'^vue$': 'vue/dist/vue.common.js',
},
roots: ['<rootDir>', '<rootDir>/src/renderer'],
modulePaths: ['<rootDir>'],
setupFiles: ['<rootDir>/vue-test-setup.ts'],
snapshotSerializers: ['jest-serializer-vue'],
testMatch: ['**/test/**/*.spec.(js|jsx|ts|tsx)|**/__test__/*.(js|jsx|ts|tsx)'],
transformIgnorePatterns: ['<rootDir>/node_modules/?!(vue-timers)'],
globals: {
'ts-jest': {
/* Fails on mapped import syntax without this.*/
diagnostics: {
warnOnly: true,
},
},
},
};
La prueba se encuentra en test/unit/regexes.spec.ts y la importación se encuentra en src/renderer/resources/regexes.ts
El error específico que obtengo es:
FAIL test/unit/specs/regexes.spec.ts
● Test suite failed to run
TypeScript diagnostics (customize using `[jest-config].globals.ts-jest.diagnostics` option):
test/unit/specs/regexes.spec.ts:1:19 - error TS2307: Cannot find module '@/resources/regexes'.
1 import REGEX from '@/resources/regexes';
~~~~~~~~~~~~~~~~~~~~~