2017-07-17 2 views
0

HerokuでES6構文にbabel-nodeを使用していますが、展開時にビルドエラーが発生します。 「babel-node:not found」と表示されます。私は自分のローカルコンピュータにクリーンインストールを試みましたが、それは完全に動作します。 Package.json:Herbelにbabel-nodeがインストールされていない

{ 
    "name": "secret", 
    "version": "0.0.0", 
    "private": true, 
    "scripts": { 
    "start": "./node_modules/.bin/babel-node ./bin/www" 
    }, 
    "engines": { 
    "node": "7.5.0", 
    "npm": "5.0.3" 
    }, 
    "dependencies": { 
    "babel-cli": "^6.24.1", 
    "babel-preset-es2015": "^6.24.1", 
    "babel-preset-stage-0": "^6.24.1", 
    ... 
    } 
} 

ご協力いただきありがとうございます。

ステップ(1):ターミナル

npm install --save babel-cli babel-preset-envをステップ1で::)ここでは少し遅れて

2017-07-17T11:02:26.997876+00:00 heroku[web.1]: State changed from crashed to starting 
2017-07-17T11:02:31.839278+00:00 heroku[web.1]: Starting process with command `npm start` 
2017-07-17T11:02:38.074157+00:00 heroku[web.1]: State changed from starting to crashed 
2017-07-17T11:02:38.062607+00:00 heroku[web.1]: Process exited with status 1 
2017-07-17T11:02:37.865774+00:00 app[web.1]: 
2017-07-17T11:02:37.865786+00:00 app[web.1]: > [email protected] start /app 
2017-07-17T11:02:37.865787+00:00 app[web.1]: > babel-node ./bin/www 
2017-07-17T11:02:37.865787+00:00 app[web.1]: 
2017-07-17T11:02:37.936361+00:00 app[web.1]: sh: 1: babel-node: not found 
2017-07-17T11:02:37.966452+00:00 app[web.1]: npm ERR! file sh 
2017-07-17T11:02:37.966683+00:00 app[web.1]: npm ERR! code ELIFECYCLE 
2017-07-17T11:02:37.966931+00:00 app[web.1]: npm ERR! errno ENOENT 
2017-07-17T11:02:37.967106+00:00 app[web.1]: npm ERR! syscall spawn 
2017-07-17T11:02:37.967287+00:00 app[web.1]: npm ERR! [email protected] start: `babel-node ./bin/www` 
2017-07-17T11:02:37.967430+00:00 app[web.1]: npm ERR! spawn ENOENT 
2017-07-17T11:02:37.967588+00:00 app[web.1]: npm ERR! 
2017-07-17T11:02:37.967733+00:00 app[web.1]: npm ERR! Failed at the [email protected] start script. 
2017-07-17T11:02:37.967873+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above. 
2017-07-17T11:02:37.969151+00:00 app[web.1]: 
2017-07-17T11:02:37.969374+00:00 app[web.1]: npm ERR! A complete log of this run can be found in: 
2017-07-17T11:02:37.969484+00:00 app[web.1]: npm ERR!  /app/.npm/_logs/2017-07-17T11_02_37_957Z-debug.log 
2017-07-17T11:25:52.044791+00:00 heroku[web.1]: State changed from crashed to starting 
2017-07-17T11:25:54.841341+00:00 heroku[web.1]: Starting process with command `npm start` 
2017-07-17T11:25:57.407691+00:00 heroku[web.1]: Process exited with status 1 
2017-07-17T11:25:57.413873+00:00 heroku[web.1]: State changed from starting to crashed 
2017-07-17T11:25:57.310176+00:00 app[web.1]: 
2017-07-17T11:25:57.310190+00:00 app[web.1]: > [email protected] start /app 
2017-07-17T11:25:57.310191+00:00 app[web.1]: > babel-node ./bin/www 
2017-07-17T11:25:57.310192+00:00 app[web.1]: 
2017-07-17T11:25:57.316940+00:00 app[web.1]: sh: 1: babel-node: not found 
2017-07-17T11:25:57.335019+00:00 app[web.1]: npm ERR! file sh 
2017-07-17T11:25:57.335287+00:00 app[web.1]: npm ERR! code ELIFECYCLE 
2017-07-17T11:25:57.335517+00:00 app[web.1]: npm ERR! errno ENOENT 
2017-07-17T11:25:57.335735+00:00 app[web.1]: npm ERR! syscall spawn 
2017-07-17T11:25:57.335933+00:00 app[web.1]: npm ERR! [email protected] start: `babel-node ./bin/www` 
2017-07-17T11:25:57.336095+00:00 app[web.1]: npm ERR! spawn ENOENT 
2017-07-17T11:25:57.336280+00:00 app[web.1]: npm ERR! 
2017-07-17T11:25:57.336449+00:00 app[web.1]: npm ERR! Failed at the [email protected] start script. 
2017-07-17T11:25:57.336614+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above. 
2017-07-17T11:25:57.337985+00:00 app[web.1]: 
2017-07-17T11:25:57.338232+00:00 app[web.1]: npm ERR! A complete log of this run can be found in: 
2017-07-17T11:25:57.338379+00:00 app[web.1]: npm ERR!  /app/.npm/_logs/2017-07-17T11_25_57_323Z-debug.log 
+0

'npm list -g babel-node'と入力すると何が得られますか? – brennanenanen

+0

- (Empty)を返します。 babel-cli-packageはnode_modules /にありますが、実行ファイルはnode_modules/.binにありません – justasking

+0

うーん、わかりません。私はあなたが 'npm i -g babel-node'を試したと仮定しています。 – brennanenanen

答えて

0

、しかし、私はあなたが欠けていると思うものですDEVに保存しないでくださいそのため、NPM_CONFIG_PRODUCTION = falseを設定する必要があります。

ステップ(2):babelボイラープレートに追加したり、babelrcファイルを使用したりすることなく、babelをコンパイルしません。最も簡単な方法は、メインのアプリケーションフォルダに.babelrcファイルを作成することです。

{ 
    "presets": ["env"] 
} 

ステップ2の注:ENVの使用を使用すると、バベル・プリセット・es2015を必要としないプリセットなど

ステップ(同1つのあなたのpackage.jsonは以下にして入力され、 3):babel-nodeを使用してコードを実行できるようになりました。その場合は、起動スクリプトを実行します。 https://www.npmjs.com/package/babel-preset-env

さらに、私はPM2のようなプロセス・マネージャを使用することをお勧めします:あなたはプリセットのロジックを理解し、さらに指導を必要とする場合./node_modules/.bin/babel-node ./bin/www

私はNPMモジュールを読ん示唆しています。これにより、ノードインスタンスがクラッシュした場合でも、そのインスタンスが生き続けることができます。これを行うために使用された永遠のモジュールですが、pm2は良い方法です。ここにあなたのpackage.json内の起動スクリプトの例です:

「スクリプト」:{ は「開始」:「ノードがmain.json --attach --env生産を開始./node_modules/.bin/pm2」 }

Procfile(ノート、私はnginxのを使用していますが、ただ、NPMスタートが正常に動作します):

web: bin/start-nginx npm start 
worker: node ./node_modules/.bin/pm2 start worker.json --attach 

そしてここでは、インスタンスを保持し、ノート(バベル・ノードを使用する引数を使用してmain.jsonだろうヘロクのWeb dynoでフォークしないでください):

main.json:

{ 
    "name": "the_awesome", 
    "script": "app.js", 
    "instances": 1, 
    "exec_mode": "cluster" 
} 

worker.json:あなたが使用している場合

{ 
    "name": "worker", 
    "script": "/app/lib/worker.js" 
} 

(4)必要を追加( 'バベル登録')あなたのapp.jsとworker.jsにフックpm2をクラスタモードで使用します。 pm2をクラスタモードで使用していない場合、またはpm2を使用していない場合は、babel-nodeを直接使用して.jsまたはes6ファイルを実行できます。

最後に、babel-nodeが実際にインストールされているかどうかを確認するには、以下:

heroku run bash -a {name of your app} 
ls ./node_modules/.bin //babel-node should be present 

幸運!

関連する問題