当我尝试在 Elastic Beanstalk 上上传 Node.js 项目时,出现以下错误:
找不到package.json。 Node.js 启动时可能会出现问题。验证 package.json 是否有效或将代码放入名为 server.js 或 app.js 的文件中。
但是,我在主目录中有package.json。
有几个人错误地压缩了父文件夹。您需要选择该文件夹的所有内容并压缩它们。
https://forums.aws.amazon.com/message.jspa?messageID=477087 https://forums.aws.amazon.com/thread.jspa?threadID=130140&tstart=0
我在运行 Node js 样板文件的 zip 时遇到了同样的问题。当我从 zip 中删除 .git 和 .idea 目录以及 n.gitignore 文件时,它起作用了。
您需要压缩构建目录,要在该目录中执行此操作,您可以
zip -r upload.zip .
(不要忘记当前目录末尾的点)。
因此,在该目录中,您需要有 index.js 或 server.js,因为 EB 只会查找如何在该目录中运行应用程序,而不会查看文件夹
src
、dist
等。
如果您使用
eb cli
,请确保您已 git 提交所有更改。
如果您进行压缩并上传,请确保不要压缩父文件夹,而是选择所有文件并进行压缩。
就我而言,我发现文件夹 .elasticbeanstalk 的错误副本位于另一个 config.yml 中
示例
root_project_folder
.elasticbeanstalk/
config.yml
public/
.elasticbeanstalk/
config.yml
当我启动“eb部署”命令时,它失败了,因为使用了错误的 public/ 文件夹作为根目录
删除 public/.elasticbeanstalk/ 解决了我的问题 再见
如果您的 package.json 缺少启动命令,您也可能会遇到此错误
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node index.js" <-- add this if missing
},
"dependencies": {
}
}