2016-11-25 98 views
0

在Rails5应用程序上部署一个Angular2到Heroku,导致无错地成功构建。然后我设置我的PG数据库没有发生。当试图访问应用程序时,我从Heroku应用程序日志中获得下面的堆栈跟踪。试图找出为什么找不到npm:命令。Angular 2 + Rails 5 Heroku部署错误(bash:npm:命令没有找到)

2016-11-25T00:30:40.044683+00:00 heroku[web.1]: State changed from 
crashed to starting 
2016-11-25T00:30:52.371722+00:00 heroku[web.1]: Starting process with 
command `npm start` 
2016-11-25T00:30:55.294652+00:00 app[web.1]: bash: npm: command not 
found 
2016-11-25T00:30:55.439571+00:00 heroku[web.1]: State changed from 
starting to crashed 
2016-11-25T00:30:55.409349+00:00 heroku[web.1]: Process exited with 
status 127 

的package.json头

{ 
"name": "raven", 
"version": "0.0.1", 
"license": "MIT", 
"angular-cli": {}, 
"scripts": { 
    "start": "ng serve --proxy-config proxy.conf.json", 
    "start-phone": "ng serve --proxy-config proxy.conf.json --host 
    0.0.0.0", 
    "lint": "tslint \"src/**/*.ts\"", 
    "test": "ng test", 
    "pree2e": "webdriver-manager update", 
    "e2e": "protractor", 
    "heroku-postbuild": "ng build --prod" 
}, 

当试图打的应用程序网址,Heroku的应用程序日志抛出下面的错误代码:

2016-11-25T00:35:43.573863+00:00 heroku[router]: at=error code=H10 
desc="App crashed" method=GET path="/" host=shrouded-shelf- 
15670.herokuapp.com request_id=92fba3d2-08e4-479d-8484-33f093c9c823 
fwd="75.173.239.214" dyno= connect= service= status=503 bytes= 

更新:我添加了一个Procfile到该项目的根目录下面的条目。 Rails应用程序现在开始作为输入的结果,但仍然得到bash:npm:command not found。

Procfile:

web: sh -c 'cd ./client/ && exec npm start' 
api: rails s -p 3000 

剩余误差:

2016-11-25T02:17:14.955048+00:00 heroku[web.1]: Starting process with 
command `sh -c 'cd ./client/ && exec npm start'` 
2016-11-25T02:17:17.066308+00:00 heroku[web.1]: Process exited with 
status 127 
2016-11-25T02:17:16.983254+00:00 app[web.1]: sh: 1: exec: npm: not 
found 
2016-11-25T02:17:17.078868+00:00 heroku[web.1]: State changed from 
starting to crashed 

回答

0

改性的package.json以考虑在heroku上后生成步骤开始Angular2应用程序。在& &之后保持它只在前面的步骤完成时才起动。

"heroku-postbuild": "ng build --prod && npm start"