NestJS已安装@nestjs/platform-express仍提示找不到模块报错
NestJS启动提示未安装@nestjs/platform-express(重装依赖无效)解决方法
问题场景
从零参照教程搭建NestJS应用时,执行启动命令npx ts-node-dev src/main.ts抛出如下报错:
[PackageLoader] No driver (HTTP) has been selected. In order to take advantage of the default driver, please, ensure to install the "@nestjs/platform-express" package ($ npm install @nestjs/platform-express).
卸载重装@nestjs/platform-express依赖后报错仍然存在。
排查解决步骤
按优先级从高到低依次排查:
- 对齐NestJS核心包与平台包版本
该报错最常见诱因是@nestjs/core和@nestjs/platform-express版本号不匹配,驱动加载逻辑无法识别对应版本的平台包。执行以下命令重装对齐版本:npm uninstall @nestjs/core @nestjs/platform-express # 若跟随固定版本教程学习,把latest替换为教程指定的统一版本号 npm install @nestjs/core@latest @nestjs/platform-express@latest - 校验main.ts启动代码
启动代码书写错误也会触发该类驱动加载报错,最小可运行的启动代码如下,先对齐代码再尝试启动:import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; async function bootstrap() { // 不要漏传根模块AppModule,未做自定义适配时不要随意传第二个adapter配置参数 const app = await NestFactory.create(AppModule); await app.listen(3000); } bootstrap(); - 清理损坏的依赖缓存与锁文件
本地node_modules、包管理器锁文件损坏时,单独重装单个依赖无法修复问题,按顺序执行命令清理后重装全量依赖:
若使用pnpm作为包管理器,需确认# 删除依赖目录与所有包管理器的锁文件 rm -rf node_modules package-lock.json yarn.lock pnpm-lock.yaml # 清理npm缓存 npm cache clean --force # 重新安装全量依赖 npm install@nestjs/platform-express已被显式写入package.json的dependencies字段,避免幽灵依赖导致运行时无法加载包。 - 修正TypeScript配置
tsconfig.json模块解析配置错误会导致运行时无法正确寻址依赖包,将对应配置项对齐如下:
配置修改完成后重新执行启动命令即可。{ "compilerOptions": { "module": "commonjs", "moduleResolution": "node", "esModuleInterop": true, "target": "es2017", "experimentalDecorators": true } }
内容的提问来源于stack exchange,提问作者bilard
相关产品推荐
相关产品推荐

