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

部署Azure NodeJS应用遇模块缺失,Kudu Node版本与配置不符

Azure Node.js应用部署问题:Node版本不一致与模块缺失错误

一、Kudu控制台Node版本与应用运行版本不符的原因

Azure App Service Linux的Kudu调试环境和应用实际运行环境是相互独立的:

  • Kudu默认使用较旧的Node版本(此处为v14.19.2),但这不会影响你的应用运行
  • 从日志流的npm info using node@v18.19.1可以确认,应用实际运行时已读取package.json中engines字段配置的Node 18 LTS版本,这个版本符合预期,无需针对Kudu的版本做调整

二、解决Error: Cannot find module '../dist/cli'错误

这个错误是Strapi CLI模块缺失导致的,核心原因是部署过程中未正确生成Strapi的构建产物,可按以下步骤排查修复:

1. 本地验证构建流程

先在本地确保应用能正常运行:

  • 执行 npm install 安装所有依赖
  • 执行 npm run build 生成Strapi的dist目录(这一步是关键,Strapi需要构建后才能启动)
  • 执行 npm start 验证应用是否能正常启动

2. 配置Azure部署时自动执行构建

在Azure App Service中调整启动逻辑,确保部署时完成构建:

  • 方式一:在App Service的「配置」→「常规设置」→「启动命令」中设置:
    npm run build && npm start
    
  • 方式二:修改package.json的scripts字段,让start命令包含构建步骤:
    "scripts": {
      "start": "strapi build && strapi start",
      "build": "strapi build"
    }
    

3. 清理Azure环境的依赖缓存

如果依赖缓存导致构建产物未更新,可通过Kudu控制台手动清理:

  • 进入Kudu控制台后,执行以下命令:
    rm -rf node_modules package-lock.json
    npm install
    npm run build
    

4. 确认engines配置匹配

确保package.json的engines字段与日志中的版本一致:

"engines": {
  "node": "18.x",
  "npm": "9.x"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 23:32:19