为什么在将应用程序部署到 Heroku 时出现此错误?

Why do I obtain this error when deploying app to Heroku?

我在使用 git hub 将我的应用程序部署到 heroku 时遇到了某种错误。问题是,我不明白 heroku 日志和随之而来的错误。这是 heroku 日志:

Marcuss-MacBook-Pro:Weather-App marcushurney$ heroku logs
2016-01-05T14:37:27.798077+00:00 app[web.1]: npm ERR! Please include the following file with any support request:
2016-01-05T14:37:27.798377+00:00 app[web.1]: npm ERR!     /app/npm-debug.log
2016-01-05T14:37:27.786949+00:00 app[web.1]: npm ERR! node v5.1.1
2016-01-05T14:37:27.786556+00:00 app[web.1]: npm ERR! argv "/app/.heroku/node/bin/node" "/app/.heroku/node/bin/npm" "start"
2016-01-05T14:37:27.787856+00:00 app[web.1]: npm ERR! npm  v3.3.12
2016-01-05T14:37:28.776245+00:00 heroku[web.1]: Process exited with status 1
2016-01-05T14:37:28.789412+00:00 heroku[web.1]: State changed from starting to crashed
2016-01-05T17:27:16.684869+00:00 heroku[web.1]: State changed from crashed to starting
2016-01-05T17:27:17.853743+00:00 heroku[web.1]: Starting process with command `npm start`
2016-01-05T17:27:20.423495+00:00 app[web.1]: npm ERR! node v5.1.1
2016-01-05T17:27:20.423130+00:00 app[web.1]: npm ERR! argv "/app/.heroku/node/bin/node" "/app/.heroku/node/bin/npm" "start"
2016-01-05T17:27:20.424111+00:00 app[web.1]: npm ERR! npm  v3.3.12
2016-01-05T17:27:20.425937+00:00 app[web.1]: npm ERR! missing script: start
2016-01-05T17:27:20.422441+00:00 app[web.1]: npm ERR! Linux 3.13.0-71-generic
2016-01-05T17:27:20.426242+00:00 app[web.1]: npm ERR! 
2016-01-05T17:27:20.426432+00:00 app[web.1]: npm ERR! If you need help, you may report this error at:
2016-01-05T17:27:20.426634+00:00 app[web.1]: npm ERR!     <https://github.com/npm/npm/issues>

您必须通知 heroku 从哪里开始:missing script: start。在你的 package.json 中,你应该有类似 this 的内容:

"scripts": {
  "start": "node index.js"
}

其中 index.js 是您的入口点。

作为 alternative,您可以在 Procfile 中指定:

web: node index.js

在我的例子中,changing这个:

"scripts": {
     "test": "echo \"Error: no test specified\" && exit 1"
    },

对此:

"scripts": {
   "start": "node app.js"
    },

是解决方案

我的节点 js 应用程序在发布到 heroku.com

时也遇到了类似的错误

首先创建一个procfile,procfile是一个没有任何扩展名的简单文本文件。

现在只在 procfile 中放置一行。

web: npm start

现在使用命令

创建 package.json 文件
npm init

创建 package.json 文件后,请将开头 属性 放在脚本中。

"scripts": {
    "start": "node app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

现在提交所有 (procfile/package.json) 个挂起的文件。并再次从 heroku 部署应用程序。

我的愚蠢错误是我将主分支推送到 Heroku 而我的更改在另一个分支中!

确保先将最新分支与 master 分支合并

> git checkout master

> git merge your-latest-branch

> git push heroku master

出于某种原因将启动脚本推到顶部解决了问题

所以不用

"scripts": {
    "test": "jest",
    "start": "node app.js"
}

我做到了

"scripts": {
    "start": "node app.js",
    "test": "jest"

}

经过多次故障排除后,我在尝试使用 heroku 部署我的服务器时遇到了同样的问题。我对 package.json 所做的更改包括在您的脚本中创建一个开始 属性;

"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "start": "node app.js"
},

进行更改后,确保没有扩展名的 Procfile 有这一行;

  web: node app.js (Depends on your server file).

然后您可以继续提交您的文件。

希望这对您有所帮助

我使用的是 nodemon.js,所以我将其包含在 package.json 中,如下所示: “脚本”

 "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "dev": "nodemon index.js",
     },

但是我遇到了这个 Heroku 错误:

2022-01-06T11:51:55.044364+00:00 heroku[web.1]: Starting process with command npm start 2022-01-06T11:51:57.390306+00:00 app[web.1]: npm ERR! missing script: start 2022-01-06T11:51:57.398106+00:00 app[web.1]: 2022-01-06T11:51:57.398334+00:00 app[web.1]: npm ERR! A complete log of this run can be found in: 2022-01-06T11:51:57.398402+00:00 app[web.1]: npm ERR!
/app/.npm/_logs/2022-01-06T11_51_57_391Z-debug.log 2022-01-06T11:51:57.598054+00:00 heroku[web.1]: Process exited with status 1 2022-01-06T11:51:57.882212+00:00 heroku[web.1]: State changed from starting to crashed 2022-01-06T11:51:57.953568+00:00 heroku[web.1]: State changed from crashed to starting 2022-01-06T11:52:00.240909+00:00 heroku[web.1]: Starting process with command npm start 2022-01-06T11:52:02.010859+00:00 app[web.1]: npm ERR! missing script: start 2022-01-06T11:52:02.014370+00:00 app[web.1]: 2022-01-06T11:52:02.014567+00:00 app[web.1]: npm ERR! A complete log of this run can be found in: .................................etc

我发现 Heroku 使用“npm start”来 运行 我们的应用程序,同时我没有将它包含在 package.json 中;所以包括如下:

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "nodemon index.js",
    "start": "node index.js"
  },

然后重新启动 git 个进程:

-heroku restart
-heroku git:remote -a app_name
-git add .
-git commit -am "Your commit"
-git push heroku master

一切都很好。