2017-09-10 16 views
0

heroku/nodejsビルドパックを使用しています。なぜ私がアプリケーションエラーを見ていノードアプリケーションHerokuアプリケーションエラー

web: npm run prod

任意のアイデア:私は、コードの一行だけを持ってprocfileで

"scripts": { 
    "build": "webpack --config webpack.prod.js", 
    "server": "http-server public -p 3000 -a localhost -c 0", 
    "prod": "npm run build && npm run server", 
    "dev": "webpack-dev-server --config webpack.dev.js", 
    "lint": "eslint . --fix" 
}, 

これはpackage.jsonで私のスクリプトがどのように見えるかです?

+1

私はもっと詳しい情報が必要だと思います。 heroku cliから "heroku logs --tail"を実行してみてください。私が見つけたこのサイトは以下のようなものです:https://kb.heroku.com/why-am-i-seeing-application-error –

+1

3000の代わりに、「サーバ」スクリプトでHerokuの$ PORT envを使う必要がありますポート。 –

+0

"server"コマンドを単純な 'http-server'にする必要がある場合は、私はあなたの答えを受け入れます。それは私にいくつかのグーグルとデバッグが必要でした。また、herokuは明らかにdev依存関係をインストールしません。 – Michal

答えて

0

エラーについては、環境変数$PORT、つまりhttp-server public -p $PORT -c 0を使用する必要があると思います。http-serverがdepsで、devDepsではないことを確認してください。

これはエラーを引き起こしていない可能性がありますが、実行中にビルドを実行しないでください。代わりに、以下のようにpostinstall NPMスクリプトにビルドステップを追加します。

"scripts": { "build": "webpack --config webpack.prod.js", "postinstall": "npm run build", "server": "http-server public -p $PORT -c 0", "prod": "npm run server", "dev": "webpack-dev-server --config webpack.dev.js", "lint": "eslint . --fix" },

これは、ノード・プロセスが起動するたびに、あなたのビルドは、展開上で実行されることを保証しません。

+0

FYI 'npm run start'をお持ちの場合は' procfile'は必要ありません。 'prod'の名前を' start'に変更し、 'procfile'を削除するだけです – serby

関連する問題