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

Node.js项目AWS Elastic Beanstalk部署失败:缺失node-linux-arm64/package.json

解决AWS Elastic Beanstalk Node.js项目启动失败:npm安装依赖时找不到node-linux-arm64/package.json

问题重现

项目此前在AWS Elastic Beanstalk(平台:Node.js 16 running on 64bit Amazon Linux 2/5.6.3)正常运行数月,圣诞假期后启动失败,eb-engine.log报错如下:

[INFO] Executing instruction: Use NPM to install dependencies
[INFO] use npm to install dependencies
[INFO] Running command /bin/sh -c npm config set jobs 1
[INFO] Running command /bin/sh -c npm --production install

npm ERR! code 1
npm ERR! path /var/app/staging/node_modules/node
npm ERR! command failed
npm ERR! command sh -c node installArchSpecificPackage
npm ERR! node:internal/modules/cjs/loader:936
npm ERR! throw err;
npm ERR! ^
npm ERR!
npm ERR! Error: Cannot find module 'node-linux-arm64/package.json'
npm ERR! Require stack:
npm ERR! - /var/app/staging/node_modules/node/installArchSpecificPackage.js
npm ERR! at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
npm ERR! at Function.resolve (node:internal/modules/cjs/helpers:108:19)
npm ERR! at ChildProcess.<anonymous> (/var/app/staging/node_modules/node-bin-setup/index.js:19:27)
npm ERR! at ChildProcess.emit (node:events:527:28)
npm ERR! at maybeClose (node:internal/child_process:1092:16)
npm ERR! at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5) {
npm ERR! code: 'MODULE_NOT_FOUND',
npm ERR! requireStack: [
npm ERR! '/var/app/staging/node_modules/node/installArchSpecificPackage.js'
npm ERR! ]
npm ERR! }

解决方案

1. 移除不必要的node npm包

多数Node.js项目不需要依赖npm上的node包(EB平台已提供Node.js运行环境),直接在package.json中删除该依赖,执行npm install更新锁文件后重新部署。

2. 清理npm缓存并重建依赖

  • 本地操作:
    npm cache clean --force
    rm -rf node_modules package-lock.json
    npm install --production
    
    提交更新后的package-lock.json重新部署即可。
  • EB环境级清理:在项目根目录创建.ebextensions/01-clean-cache.config,添加以下内容强制部署前清理缓存:
    container_commands:
      01_clean_npm_cache:
        command: "npm cache clean --force"
    

3. 检查并修正EB环境架构

登录EB控制台,查看环境的实例类型是否被切换为ARM64架构(如t4g系列)。若项目依赖的node包不支持ARM64,可切换回x86_64实例类型(如t3系列)。

4. 强制npm安装x86_64架构包(适用于ARM实例)

若需保留ARM架构实例,可在.ebextensions中配置强制npm安装x64架构的依赖:
创建.ebextensions/02-force-x64-arch.config:

container_commands:
  01_npm_install_x64:
    command: "npm install --production --arch=x64"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 22:00:53