Vue+Vite项目Jest运行报错无法找到~/路径下Vue模块如何解决?
解决方案
- 补充tsconfig.json路径别名配置
ts-jest解析路径时会优先读取tsconfig的映射规则,需在项目根目录的tsconfig.json中新增如下配置:
{ "compilerOptions": { "baseUrl": ".", "paths": { "~/*": ["src/*"] } } }
- 修正Jest配置
你现有配置中transform字段的正则表达式未正确转义反斜杠,且可显式指定rootDir避免路径解析偏移,修正后的完整jest配置如下:
/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ module.exports = { preset: 'ts-jest', rootDir: '.', moduleFileExtensions: ['js', 'json', 'jsx', 'ts', 'tsx', 'vue'], moduleNameMapper: { '^~/(.*)$': '<rootDir>/src/$1', }, testEnvironment: 'jsdom', testMatch: ['**/tests/unit/**/*.[jt]s?(x)'], transform: { '^.+\\.vue$': 'vue-jest', '^.+\\.ts$': 'ts-jest', }, }
- 清理缓存后重试
配置修改完成后,先执行npx jest --clearCache清除Jest缓存,再重新运行测试即可。 - 特殊情况适配
如果你的jest.config.js没有放在项目根目录,而是放在子文件夹中,需将rootDir的值调整为指向项目根目录的相对路径,比如配置文件放在config/jest.config.js,则rootDir设为'../'。
内容的提问来源于stack exchange,提问作者Erick Christian
相关产品推荐
相关产品推荐

