找不到package.json。 Node.js 启动时可能会出现问题。验证 package.json 是否有效或将代码放入名为 server.js 或 app.js 的文件中

问题描述 投票:0回答:8

当我尝试在 Elastic Beanstalk 上上传 Node.js 项目时,出现以下错误:

找不到package.json。 Node.js 启动时可能会出现问题。验证 package.json 是否有效或将代码放入名为 server.js 或 app.js 的文件中。

但是,我在主目录中有package.json。

node.js amazon-elastic-beanstalk
8个回答
52
投票

有几个人错误地压缩了父文件夹。您需要选择该文件夹的所有内容并压缩它们。

https://forums.aws.amazon.com/message.jspa?messageID=477087 https://forums.aws.amazon.com/thread.jspa?threadID=130140&tstart=0


23
投票

上传

.zip
文件(Nodejs 应用程序)时,我们需要选择文件夹中的所有文件,然后将其压缩,如下图所示。

然后将Nodejs(zip文件)项目上传到AWS Elastic Beanstalck中。


1
投票

我在运行 Node js 样板文件的 zip 时遇到了同样的问题。当我从 zip 中删除 .git 和 .idea 目录以及 n.gitignore 文件时,它起作用了。


1
投票

您需要压缩构建目录,要在该目录中执行此操作,您可以

zip -r upload.zip .
(不要忘记当前目录末尾的点)。

因此,在该目录中,您需要有 index.js 或 server.js,因为 EB 只会查找如何在该目录中运行应用程序,而不会查看文件夹

src
dist
等。


1
投票

这可能是包装问题。您需要进入项目内部并按照屏幕截图中提供的方式完全压缩:


0
投票

如果您使用

eb cli
,请确保您已 git 提交所有更改。

如果您进行压缩并上传,请确保不要压缩父文件夹,而是选择所有文件并进行压缩。


0
投票

就我而言,我发现文件夹 .elasticbeanstalk 的错误副本位于另一个 config.yml 中

示例

root_project_folder 
    .elasticbeanstalk/
         config.yml
    public/
         .elasticbeanstalk/
              config.yml

当我启动“eb部署”命令时,它失败了,因为使用了错误的 public/ 文件夹作为根目录

删除 public/.elasticbeanstalk/ 解决了我的问题 再见


0
投票

如果您的 package.json 缺少启动命令,您也可能会遇到此错误

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node index.js" <-- add this if missing
  },
  "dependencies": {
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.