Jest测试报错:无法找到angular-oauth2-oidc模块求排查
Jest测试时找不到angular-oauth2-oidc模块的解决办法
几个常见的配置遗漏修复点
1. 给Jest添加模块路径映射
Jest可能没正确识别这个库的模块路径,打开jest.config.js(或jest.config.ts),在moduleNameMapper里添加映射:
moduleNameMapper: { // 保留其他已有映射 '^angular-oauth2-oidc$': 'angular-oauth2-oidc/dist/angular-oauth2-oidc.umd.js' }
这个配置能让Jest正确定位到库的UMD打包文件。
2. 匹配jest-preset-angular的版本
Angular 12需要对应版本的jest-preset-angular,建议安装9.0.0版本:
npm install jest-preset-angular@9.0.0 --save-dev
然后在jest配置文件里指定预设和初始化文件:
preset: 'jest-preset-angular', setupFilesAfterEnv: ['<rootDir>/src/setup-jest.ts']
3. 修正测试用TypeScript配置
打开tsconfig.spec.json,在compilerOptions.paths中添加该库的路径映射:
"paths": { // 保留其他已有路径 "angular-oauth2-oidc": ["node_modules/angular-oauth2-oidc"] }
同时确认compilerOptions.baseUrl设置为./,保证路径解析逻辑正确。
4. 清除Jest缓存
缓存可能导致模块解析异常,执行命令清除缓存:
npx jest --clearCache
之后重新运行测试即可。
5. 重装依赖确保完整性
如果以上方法都无效,删除node_modules和锁文件后重新安装依赖:
rm -rf node_modules package-lock.json npm install
内容的提问来源于stack exchange,提问作者TheWorkingDev
相关产品推荐
相关产品推荐

