Elastic Beanstalk部署Node.js示例应用持续失败的原因排查
解决Elastic Beanstalk部署Node.js应用时找不到package.json的问题
从你提供的部署日志能明确看到核心问题:Elastic Beanstalk的部署脚本找不到你的package.json文件,这也是部署失败、一直显示默认页面的原因。结合你的操作,给出以下解决步骤:
1. 修正压缩包结构(最关键)
EB要求部署包的根目录直接包含应用核心文件(package.json、app.js等),如果你是把整个项目文件夹打包(比如文件夹名为my-app,压缩后打开先看到my-app文件夹,里面才是package.json),EB会在错误的路径下查找文件,自然找不到。
正确操作:
- 打开你的项目文件夹,选中里面所有文件(包括package.json、app.js)
- 直接将这些文件压缩成zip包,不要把外层文件夹也打包进去
2. 优化npm启动脚本
你当前的start脚本写了npm i && node app.js,但EB会自动执行npm install安装依赖,重复执行可能引发冲突。建议修改为:
{ "name": "Elastic-Beanstalk-Sample-App", "version": "0.0.1", "private": true, "dependencies": { "express": "^4.18.2", "pm2": "^5.2.2" }, "scripts": { "start": "node app.js" } }
如果要使用pm2管理进程,建议添加Procfile文件(无后缀),内容为:
web: pm2-runtime start app.js
这样EB会识别并使用pm2启动应用,替代默认的node命令。
3. 验证部署包
压缩完成后,先在本地解压检查:打开zip包后,根目录必须直接看到package.json、app.js等文件,确保结构正确后再上传到EB。
如果频繁手动打包出错,建议使用EB CLI的eb deploy命令,它会自动帮你生成符合要求的部署包。
内容的提问来源于stack exchange,提问作者zztt a
相关产品推荐
相关产品推荐

