AdminJS集成Mongoose遇TS2307错误:无法找到@adminjs/mongoose模块
解决AdminJS + Mongoose + TypeScript中找不到@adminjs/mongoose模块的问题
以下是针对该问题的具体排查和解决步骤:
1. 检查并修正TypeScript配置
确保tsconfig.json的配置能让TypeScript正确识别node_modules中的模块,添加或调整以下关键配置:
{ "compilerOptions": { "module": "CommonJS", "moduleResolution": "node", "target": "ES6", "esModuleInterop": true, "skipLibCheck": true, "allowJs": true, "baseUrl": "." }, "include": ["**/*.ts"], "exclude": ["node_modules"] }
moduleResolution: "node"是Node.js项目解析模块的标准配置,必须开启。allowJs: true适配你代码中导入.js后缀模型文件的写法。
2. 清理依赖缓存并重装
缓存损坏可能导致依赖安装不完整,执行以下命令彻底重置依赖:
rm -rf node_modules package-lock.json npm cache clean --force npm install
3. 确认版本兼容性
从你的依赖版本来看,adminjs@7.8.13与@adminjs/mongoose@3.0.1属于官方兼容组合,但如果问题仍存在,可尝试锁定精确版本:
npm install @adminjs/mongoose@3.0.1 --save-exact
若还是无效,可尝试将AdminJS降级到7.8.0(与该适配器版本的最佳兼容版):
npm install adminjs@7.8.0 --save-exact
4. 手动补充类型声明(临时方案)
如果TypeScript仍无法识别模块类型,可在项目根目录创建src/@types/adminjs__mongoose/index.d.ts文件,手动声明模块类型:
declare module '@adminjs/mongoose' { import { BaseDatabase, BaseResource } from 'adminjs'; export class Database extends BaseDatabase {} export class Resource extends BaseResource {} }
然后在tsconfig.json的include中添加该类型文件路径:
"include": ["**/*.ts", "src/@types/**/*.d.ts"]
验证操作
完成上述步骤后,执行npm run dev重启服务器,检查模块找不到的错误是否消失。
内容的提问来源于stack exchange,提问作者OskarFdz11
相关产品推荐
相关产品推荐

