如何配置Jest以正确识别处理SvelteKit的$lib路径别名
解决Jest无法识别SvelteKit $lib别名报错问题
出现Cannot find module '$lib/...'报错的核心原因是Jest默认不识别SvelteKit内置的$lib路径别名,需要手动在Jest配置中添加别名映射:
- 打开项目根目录下的Jest配置文件(支持
jest.config.js、jest.config.cjs或package.json内的jest字段),添加moduleNameMapper配置项:
// 以jest.config.js为例 module.exports = { // 其余原有配置保留 moduleNameMapper: { "^\\$lib/(.*)$": "<rootDir>/src/lib/$1", // 如果还有其他自定义别名,也可以在这里添加 } }
<rootDir>是Jest内置变量,默认指向项目根目录,如果你的项目中$lib对应的实际存储路径不是src/lib,可以根据实际情况调整映射路径即可。
- 如果你使用TypeScript,需要先确认
tsconfig.json中已经配置了对应的别名映射,否则Jest配合TS运行时仍可能报错:
{ "compilerOptions": { // 其余原有配置保留 "paths": { "$lib/*": ["src/lib/*"] } } }
配置完成后重新运行Jest测试即可正常识别$lib路径导入。
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

