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

Azure App Service部署时不包含node_modules的问题解决咨询

Azure App Service自动安装依赖问题解决

你的理解没错——Azure确实支持仅上传package.json就自动安装依赖,但GitHub Actions的Zip Deploy默认不会触发这个流程,它只是单纯上传解压文件,不会触发App Service的构建钩子,这就是为什么你看不到node_modules的原因。

下面是无需手动在Kudu操作的解决方法:

方法一:在GitHub Actions工作流中提前安装依赖(推荐)

直接在GitHub的Runner环境里完成依赖安装和项目构建,再把产物部署到Azure,这样既避免了大体积的node_modules上传,又能确保部署的是可运行的代码。修改你的GitHub Actions配置文件(通常是.github/workflows/deploy.yml):

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      # 配置Node.js环境,版本要和你Azure上用的一致
      - name: 配置Node.js环境
        uses: actions/setup-node@v4
        with:
          node-version: '20' # 换成你的Node版本
          cache: 'npm' # 缓存依赖,加速构建

      # 安装依赖,用npm ci比npm install更适合CI场景
      - name: 安装项目依赖
        run: npm ci

      # 如果是前端项目(比如React/Vue),加这步构建;后端项目可以跳过
      - name: 构建项目
        run: npm run build

      # 部署到Azure App Service
      - name: 部署到Azure
        uses: azure/webapps-deploy@v3
        with:
          app-name: '你的应用名称'
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
          # 前端项目填构建后的文件夹,比如./build;后端项目填./(确保.gitignore排除node_modules)
          package: ./build

方法二:让Azure App Service启动时自动安装依赖

如果不想在GitHub这边构建,可以让Azure自己处理:

  1. 确保部署包里包含package.json和package-lock.json(或yarn.lock),这俩文件不能丢
  2. 登录Azure门户,进入你的App Service → 配置 → 常规设置,找到启动命令,填入:
    npm install && npm start
    
    这样每次应用启动(包括部署后首次启动)都会自动安装依赖再启动服务。注意:这种方式首次启动或重启会慢一些,适合小型项目。

关键检查点

  • 确认.gitignore没有把package.json和package-lock.json排除,不然这些文件传不到Azure,自然没法安装依赖
  • 部署时绝对不要把本地的node_modules打包进去,否则Azure可能跳过自动安装流程

部署完可以去Kudu控制台(https://<你的应用名>.scm.azurewebsites.net/)验证:

  • 看Log Files→Application Logs里有没有依赖安装的日志
  • 进入wwwroot目录检查node_modules是否生成

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 23:03:29