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

2ul0zpep  于 12个月前  发布在  Git
关注(0)|答案(7)|浏览(116)

我在使用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>

字符串

7jmck4yq

7jmck4yq1#

你必须告诉heroku从哪里开始:missing script: start。在你的package.json中,你应该有这样的东西:

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

字符串
其中index.js是您的入口点。
作为替代方案,您可以在Procfile中指定:

web: node index.js

如何同时使用

如果您仍然希望从Procfile中使用启动脚本:

web: npm start


在这种情况下,您仍然可以从package.json文件中选择启动脚本,因为这是通常的方式,并且Heroku会考虑它。

ig9co6j1

ig9co6j12#

我愚蠢的错误是,我把主分支推到Heroku,而我的更改在另一个分支!
确保首先将最新的分支与主分支合并

> git checkout master

> git merge your-latest-branch

> git push heroku master

字符串

sqyvllje

sqyvllje3#

在我的例子中,changing这个:

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

字符串
对此:

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


是解决办法

anauzrmj

anauzrmj4#

出于某种原因,将开始脚本推到顶部修复了这个问题
所以与其

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

字符串
我做

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

}

du7egjpx

du7egjpx5#

我在将node js应用程序发布到heroku.com时也遇到了类似的错误。
首先创建一个procfile,procfile是一个简单的文本文件,但没有任何扩展名。
到目前为止,在procfile中只放置一行。

web: npm start

字符串
现在使用命令创建package.json文件

npm init


一旦你的package.json文件被创建,请将start属性放在脚本中。

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


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

muk1a3rh

muk1a3rh6#

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

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

字符串
在进行更改后,确保您的Procfile没有扩展名有这一行;

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


然后,您可以继续提交文件。
希望这有助于

slwdgvem

slwdgvem7#

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

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

字符串
但我得到了这个Heroku错误:
2022-01- 06 T11:51:55.044364+00:00 heroku[web.1]:使用命令npm start启动进程2022-01- 06 T11:51:57.390306+00:00 app[web.1]:npm错误!缺少脚本:start 2022-01- 06 T11:51:57.398106+00:00 app[web.1]:2022-01- 06 T11:51:57.398334+00:00 app[web.1]:npm错误!此运行的完整日志可以在以下位置找到:2022-01- 06 T11:51:57.398402+00:00 app[web.1]:npm错误!
/app/.npm/_logs/2022-01-06T11_51_57_391Z-debug.log 2022-01- 06 T11:51:57.598054+00:00 heroku[web.1]:进程已退出,状态为1 2022-01- 06 T11:51:57.882212+00:00 heroku[web.1]:状态已从启动更改为崩溃2022-01- 06 T11:51:57.953568+00:00 heroku[web.1]:状态从崩溃更改为开始2022-01- 06 T11:52:00.240909+00:00 heroku[web.1]:使用命令npm start 2022-01- 06 T11:52:02.010859+00:00 app[web.1]:npm ERR启动进程!缺少脚本:start 2022-01- 06 T11:52:02.014370+00:00 app[web.1]:2022-01- 06 T11:52:02.014567+00:00 app[web.1]:npm ERR!此运行的完整日志可以在以下位置找到:...
我发现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


一切都很顺利。

相关问题