启动NestJS服务时提示Module '@nestjs/typeorm'无导出成员'TypeOrmModule'的原因排查
解决Module '@nestjs/typeorm' has no exported member 'TypeOrmModule'错误
我帮你分析下这个问题,核心原因是依赖版本不兼容,具体有两个关键问题点:
- 你当前使用的
@nestjs/typeorm是直接从GitHub仓库拉取的未发布版本(github:nestjs/typeorm),这个版本大概率和你项目里的NestJS 8.x版本不匹配。NestJS框架和它的官方插件(比如@nestjs/typeorm)版本是强绑定的,NestJS 8需要搭配@nestjs/typeorm8.x系列的稳定版,直接拉取仓库源码可能拿到的是适配更高版本NestJS的代码,导致导出结构发生变化,自然找不到TypeOrmModule。 - 你的
typeorm版本是0.2.37,而如果拉取的GitHub版@nestjs/typeorm已经升级到适配TypeORM 0.3+的版本,两者也会出现兼容性冲突,进一步加剧这个问题。
接下来给你具体的修复步骤:
卸载当前的不稳定版@nestjs/typeorm
先把从GitHub拉的版本删掉:npm uninstall @nestjs/typeorm安装适配NestJS 8.x的稳定版@nestjs/typeorm
安装和你NestJS 8.x匹配的8.x系列版本,比如8.1.4(这是NestJS 8生态下的稳定兼容版本):npm install @nestjs/typeorm@8.1.4确保TypeORM版本兼容
你当前的typeorm@0.2.37是和@nestjs/typeorm@8.x兼容的,不过可以重新安装确认依赖完整性:npm install typeorm@0.2.37
另外还要检查你的database.module.ts,注意Connection需要从typeorm导入,否则也会报错:
import { TypeOrmModule } from '@nestjs/typeorm'; import { Connection } from 'typeorm'; // 补充这个导入 @Module({ imports: [TypeOrmModule.forRoot()], exports: [TypeOrmModule], }) export class DatabaseModule { constructor(connection: Connection) { if (connection.isConnected) console.log('connected successfully!'); } }
做完这些步骤后,重新启动服务器,这个找不到TypeOrmModule的问题应该就能解决了。
内容的提问来源于stack exchange,提问作者Soloh
相关产品推荐
相关产品推荐

