使用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>
答案 0 :(得分:44)
您必须通知heroku从哪里开始:missing script: start
。在你的package.json中,你应该有类似this的东西:
"scripts": {
"start": "node index.js"
}
index.js
是您的切入点。
作为alternative,您可以在Procfile
中指定:
web: node index.js
答案 1 :(得分:1)
就我而言,changing这个:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
到此:
"scripts": {
"start": "node app.js"
},
是解决方案
答案 2 :(得分:0)
我也面临类似样的错误为我的节点的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的重新部署应用程序。
答案 3 :(得分:0)
我的愚蠢错误是,当我的更改在另一个分支中时,我将master分支推到了Heroku!
确保首先将最新分支与主分支合并
> git checkout master
> git merge your-latest-branch
> git push heroku master
答案 4 :(得分:0)
由于某种原因,将启动脚本推到最上方即可解决问题
所以不是
"scripts": {
"test": "jest",
"start": "node app.js"
}
我做到了
"scripts": {
"start": "node app.js",
"test": "jest"
}
答案 5 :(得分:0)
经过多次故障排除后,我在尝试使用 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).
然后您可以继续提交文件。
希望这会有所帮助