SuperAPI AI 工具集

elastic-beanstalk-deployment

部署与运维

查看项目

更新于 10-16 03:47

技能介绍

用途:在将 Node.js 应用部署到 AWS Elastic Beanstalk(EB)或排查部署问题时提供依赖安装策略,尤其针对 monorepo 工作区包与私有包场景。核心原则是二选一:让 EB 自行安装依赖(包更小、较慢),或把 node_modules 一起打包(包更大、更可靠)。

主要能力:说明 EB 的依赖安装判定——package.json 存在且无 node_modules/ 时执行 npm install --omit=dev(npm 7+);存在 node_modules/ 时跳过安装、直接使用打包模块。给出两种部署策略的命令与优劣:策略一由 EB 安装;策略二打包 node_modules,适用于 monorepo、私有包与高可靠要求。

使用方式:monorepo 场景下在干净上下文安装,避免 npm ci --production 产生指向工作区包的符号链接(会导致 node_modules 不完整并报 Cannot find module)。示例流程为创建 /tmp/clean-install、复制 package.json 并将依赖改写为 file: 路径,执行 npm install --omit=dev --legacy-peer-deps,验证关键包是真实目录而非符号链接,再复制回部署目录。可用 NPM_USE_PRODUCTION=false 覆盖安装模式,通过 package.json 的 engines 指定 Node.js 版本(注意 Amazon Linux 2023 不支持版本范围)。打包 node_modules 时可在 .ebextensions 用 container_commands 在 leader_only 下执行 npm run migrate。

验证与排错:检查 node_modules 体积(打包通常 50–100MB,符号链接常仅 3–5MB),用 file 确认是目录,确认工作区包的 dist 目录存在,先解压 zip 本地运行 node dist/index.js。二进制兼容错误需在 Linux 环境安装依赖。

限制:不适用于非 AWS 部署与基于 Docker 的部署;仅有公开 npm 包的简单应用可采用标准做法。引入的命令与配置片段均为资料原文,缺少进一步版本或平台细节处暂未提供。