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

如何禁用Elastic Beanstalk Linux2 Node默认npm install步骤

问题解答

默认npm install的定义位置

AWS Elastic Beanstalk Amazon Linux 2 Node.js平台的默认npm install调用逻辑,存放在平台内置的部署hook路径下:

  • 应用部署阶段:/opt/elasticbeanstalk/hooks/appdeploy/pre/50npm.sh
  • 配置变更部署阶段:/opt/elasticbeanstalk/hooks/configdeploy/pre/50npm.sh

这两个脚本是平台预置的,默认会在prebuild阶段的对应节点执行,不需要查找其他额外配置文件。

可直接落地的阻断方案

完全可以通过.platform/hooks/prebuild/下的自定义脚本实现阻断,不需要改动平台其他底层配置,步骤如下:

  1. 先给所有自定义hook脚本加可执行权限,本地提交代码前执行:
    chmod +x .platform/hooks/prebuild/*.sh
    
    没有可执行权限的脚本会被EB直接跳过,这是自定义脚本不生效的最常见原因。
  2. 在.platform/hooks/prebuild/目录下新建优先级最高的阻断脚本,命名为00-block-npm-install.sh,内容如下:
    #!/bin/bash
    set -e
    
    # 覆写应用部署阶段的npm安装脚本为空逻辑
    cat > /opt/elasticbeanstalk/hooks/appdeploy/pre/50npm.sh << EOF
    #!/bin/bash
    echo "Skipped default npm install, use yarn instead"
    exit 0
    EOF
    chmod +x /opt/elasticbeanstalk/hooks/appdeploy/pre/50npm.sh
    
    # 覆写配置变更阶段的npm安装脚本为空逻辑
    if [ -f /opt/elasticbeanstalk/hooks/configdeploy/pre/50npm.sh ]; then
      cat > /opt/elasticbeanstalk/hooks/configdeploy/pre/50npm.sh << EOF
      #!/bin/bash
      echo "Skipped default npm install for config deploy, use yarn instead"
      exit 0
    EOF
      chmod +x /opt/elasticbeanstalk/hooks/configdeploy/pre/50npm.sh
    fi
    
  3. 同目录下新建01-yarn-install.sh编写yarn安装逻辑,注意EB在prebuild阶段的应用代码存放在/var/app/staging目录,不要直接用相对路径执行命令:
    #!/bin/bash
    set -e
    
    # 若环境未预装yarn,先全局安装
    npm install -g yarn
    # 切换到staging目录执行依赖安装
    cd /var/app/staging
    # 建议加--frozen-lockfile参数保证依赖版本和yarn.lock完全一致
    yarn install --frozen-lockfile --production
    

注意事项

  • 不要在代码仓库中提交package-lock.json文件,否则部分平台版本会绕过覆写的脚本,强制执行npm ci,如果之前提交过请删除并加入.gitignore
  • 脚本命名前面的数字序号决定执行顺序,数字越小越先执行,不要把阻断脚本的序号排到其他脚本后面,否则会出现先执行npm install再触发阻断逻辑的问题
  • 如果项目需要执行build流程(比如前端打包、ts编译),记得把build命令改成yarn执行,放在yarn安装脚本里即可。

内容的提问来源于stack exchange,提问作者Alex von Brandenfels

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 00:18:20