2017-11-07 19 views
2

私は単純なアプリケーションで作業し、私はherokuでそれを提供しました。私はこのプロジェクトにニュートリノを加えました。地元の糸でそれは働いているが、今私は英雄でそれを提供することに問題がある。問題はどうすればヒロクにニュートリノをインストールできますか?あなたは、Herokuのに静的なWebアプリケーションまたは単一ページのアプリケーションをデプロイしている場合は、ここでherokuにニュートリノでnode.jsアプリケーションを配備する方法

は、私のpackage.json

{ 
    "name": "portfolio", 
    "version": "0.1.0", 
    "private": true, 
    "scripts": { 
    "start": "neutrino start", 
    "build": "neutrino build" 
    }, 
    "devDependencies": { 
    }, 
    "dependencies": { 
    "neutrino-middleware-sass": "^0.0.1", 
    "react": "^16.0.0", 
    "react-burger-menu": "^2.1.10", 
    "react-dom": "^16.0.0", 
    "react-hot-loader": "3.0.0-beta.6", 
    "react-router-dom": "^4.2.2", 
    "react-typist": "^2.0.4", 
    "neutrino": "^7.3.1", 
    "neutrino-preset-react": "^7.3.1" 
    } 
} 

、ここでは、Herokuの上のログ

2017-11-07T20:24:27.718248+00:00 app[web.1]: npm ERR! spawn ENOENT 
2017-11-07T20:24:27.718349+00:00 app[web.1]: npm ERR! 
2017-11-07T20:24:27.718449+00:00 app[web.1]: npm ERR! Failed at the [email protected] start script 'neutrino start'. 
2017-11-07T20:24:27.718537+00:00 app[web.1]: npm ERR! Make sure you have the latest version of node.js and npm installed. 
2017-11-07T20:24:27.718625+00:00 app[web.1]: npm ERR! If you do, this is most likely a problem with the portfolio package, 
2017-11-07T20:24:27.718869+00:00 app[web.1]: npm ERR! not with npm itself. 
2017-11-07T20:24:27.718943+00:00 app[web.1]: npm ERR! Tell the author that this fails on your system: 
2017-11-07T20:24:27.719014+00:00 app[web.1]: npm ERR!  neutrino start 
2017-11-07T20:24:27.719102+00:00 app[web.1]: npm ERR! You can get information on how to open an issue for this project with: 
2017-11-07T20:24:27.719214+00:00 app[web.1]: npm ERR!  npm bugs portfolio 
2017-11-07T20:24:27.719288+00:00 app[web.1]: npm ERR! Or if that isn't available, you can get their info via: 
2017-11-07T20:24:27.719372+00:00 app[web.1]: npm ERR!  npm owner ls portfolio 
2017-11-07T20:24:27.719460+00:00 app[web.1]: npm ERR! There is likely additional logging output above. 
2017-11-07T20:24:27.722711+00:00 app[web.1]: 
2017-11-07T20:24:27.722863+00:00 app[web.1]: npm ERR! Please include the following file with any support request: 
2017-11-07T20:24:27.722931+00:00 app[web.1]: npm ERR!  /app/npm-debug.log 
2017-11-07T20:24:27.785333+00:00 heroku[web.1]: Process exited with status 1 
2017-11-07T20:24:27.797858+00:00 heroku[web.1]: State changed from starting to crashed 
2017-11-07T20:24:27.800281+00:00 heroku[web.1]: State changed from crashed to starting 
2017-11-07T20:24:36.861424+00:00 heroku[web.1]: Starting process with command `npm start` 
2017-11-07T20:24:39.981092+00:00 app[web.1]: 
2017-11-07T20:24:39.981104+00:00 app[web.1]: > [email protected] start /app 
2017-11-07T20:24:39.981106+00:00 app[web.1]: 
2017-11-07T20:24:39.981105+00:00 app[web.1]: > neutrino start 
2017-11-07T20:24:39.994350+00:00 app[web.1]: 
2017-11-07T20:24:39.987770+00:00 app[web.1]: sh: 1: neutrino: not found 
2017-11-07T20:24:40.005120+00:00 app[web.1]: npm ERR! Linux 3.13.0-133-generic 
2017-11-07T20:24:40.005428+00:00 app[web.1]: npm ERR! argv "/app/.heroku/node/bin/node" "/app/.heroku/node/bin/npm" "start" 
2017-11-07T20:24:40.005665+00:00 app[web.1]: npm ERR! node v6.12.0 

答えて

1

まずアップですHerokuアプリケーションがnodejsとstatic buildpacksを使用していることを確認したいと思います。あなたが使用しているあなたをbuildpacks確認することができますのようなものを出力

heroku buildpacks 

heroku buildpacks:add heroku/nodejs 
heroku buildpacks:add https://github.com/hone/heroku-buildpack-static 
:あなたはこれらのbuildpacksが設定されていない場合は

❯ heroku buildpacks 
=== your-app Buildpack URLs 
1. heroku/nodejs 
2. https://github.com/hone/heroku-buildpack-static 

、あなたがそれを行うことができます

静的サイトを構成するには、ドキュメントのhttps://github.com/heroku/heroku-buildpack-staticに従って、プロジェクトのルートにstatic.jsonファイルをドロップします。アップ

{ 
    "root": "build", 
    "clean_urls": true, 
    "routes": { 
    "/**": "index.html" 
    } 
} 

次に、あなたが/あなたの開発を保存devDependenciesに依存関係を構築し、設定することができます:あなたはHTML5ルーティング(例えば、反応-ルータ)で単一ページのアプリケーションを構築している場合は手始めに、あなたが始めることができます

heroku config:set NPM_CONFIG_PRODUCTION=false 

Herokuのは、(ニュートリノがある)のNode.jsアプリケーションをデプロイした場合、それはあなたのアプリを起動するためにpackage.jsonで定義された「スタート」スクリプトを使用しようとします。それが構築されたときにそれらをインストールするには、Herokuのコンフィグ。これは、静的に構築されたWebアプリケーションでは機能しません。なぜなら、実際にはファイルをビルドし、静的なbuildpackに提供させたいからです。

"scripts": { 
    "heroku-postbuild": "neutrino build" 
} 

あなたが軌道に乗る必要があります:Herokuのが何をオーバーライドするには、あなたのpackage.jsonにheroku-postbuildスクリプトを追加することができます!最後に、HerokuのNeutrinoアプリに環境変数を注入している場合、Herokuはデフォルトでこれをしないので、アプリケーションを再構築する必要があります。これはおそらく、空のコミットをあなたのレポや他の再構築の仕組みに押し込むことを伴うでしょう。

関連する問題