You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EC2实例运行Nest.js遇npm依赖冲突与命令执行错误求助

解决EC2上Nest.js项目的依赖冲突与启动失败问题

问题1:npm install 依赖冲突报错

执行npm install时触发ERESOLVE依赖冲突,核心诱因:

  • 项目声明依赖@nestjs/common、@nestjs/core等为v10.0.1,但@liaoliaots/nestjs-redis@9.0.5仅兼容NestJS v9,版本不匹配
  • package.json的engines字段要求Node.js版本>=16.0.0 <17.0.0,但实际运行环境是Node.js v20.3.0,环境版本不符合配置要求

解决步骤:

  1. 对齐Node.js版本

    • 使用nvm安装指定版本:
      nvm install 16
      nvm use 16
      
    • 若需保留Node v20,可修改package.json的engines字段放宽限制:
      "engines": {
        "npm": ">=8.0.0",
        "node": ">=16.0.0"
      }
      
  2. 修复Redis依赖版本冲突

    • 升级@liaoliaots/nestjs-redis到支持NestJS v10的版本:
      npm install @liaoliaots/nestjs-redis@^10.0.0
      
    • 若不想升级NestJS,可统一降级所有@nestjs/*依赖到v9.x,同步调整@nestjs/mongoose等关联依赖的兼容版本
  3. 重新安装依赖

    • 清理现有依赖缓存:
      rm -rf node_modules package-lock.json
      npm cache clean --force
      
    • 执行安装(若仍有冲突,可临时用--legacy-peer-deps跳过严格校验):
      npm install
      # 冲突未完全解决时使用
      npm install --legacy-peer-deps
      

问题2:npm run start:dev 报错 spawn nest ENOENT

执行启动命令时提示找不到nest命令,原因是nest CLI未全局安装,且本地安装的CLI未被正确调用。

解决步骤:

方法1:修改package.json的scripts,调用本地安装的nest CLI
将脚本中的nest start替换为npx nest start,示例:

"scripts": {
  "start": "cross-env NODE_ENV=production npx nest start",
  "start:dev": "cross-env NODE_ENV=development npx nest start --watch",
  "start:debug": "npx nest start --debug --watch",
  // 其他脚本保持不变
}

方法2:全局安装对应版本的nest CLI

npm install -g @nestjs/cli@10.0.2

内容的提问来源于stack exchange,提问作者ytpm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 14:54:56