2017-06-26 10 views
0

私は今ローカルマシン上でcreate-react-appと少し遊んでいます。私はec2インスタンスで実行している基本expressアプリケーションも作成していますので、create-react-appベースのプロジェクトをec2にプッシュしてビルドを提供したかったのです。関心のある2つのコマンドは、npm run startnpm run buildです。ec2で作成するcreate-react-app

残念なことに、npm start(実際にはコマンドを実行するためには「実行」は必要ありません)を実行すると、ec2で大量のエラーが発生します。

[[email protected] ab-site-2017-summer]$ npm start 

> [email protected] start /home/ec2-user/ab-site-2017-summer 
> react-scripts start 

/home/ec2-user/ab-site-2017-summer/node_modules/react-scripts/scripts/start.js:33 
const { 
    ^

SyntaxError: Unexpected token { 
    at exports.runInThisContext (vm.js:53:16) 
    at Module._compile (module.js:373:25) 
    at Object.Module._extensions..js (module.js:416:10) 
    at Module.load (module.js:343:32) 
    at Function.Module._load (module.js:300:12) 
    at Function.Module.runMain (module.js:441:10) 
    at startup (node.js:139:18) 
    at node.js:968:3 
npm ERR! code ELIFECYCLE 
npm ERR! errno 1 
npm ERR! [email protected] start: `react-scripts start` 
npm ERR! Exit status 1 
npm ERR! 
npm ERR! Failed at the [email protected] start script. 
npm ERR! This is probably not a problem with npm. There is likely additional logging output above. 

npm ERR! A complete log of this run can be found in: 
npm ERR!  /home/ec2-user/.npm/_logs/2017-06-26T03_51_22_790Z-debug.log 

ノートnpm installは「ec2にこのプロジェクトのためにnode_modulesをINGのときに私はいくつかの問題に気づかなかったという。私の基本的なアプローチが正しいかどうかは100%ではありません。私の目標はdistアセットをnpm buildで作成し、index.htmlファイルを私のドメインのインデックスルートに提供するように私のexpressアプリケーションを指定することです。私のフロントエンドは、react-routerを通して、そこからすべてのUIとフロントエンドルーティングを処理する必要があります。

+0

実行しているnpm/nodeのバージョンは何ですか?それは、ES6の破壊構文について不平を言っているように見えます... –

+0

事は、create-react-appは、babelとwebpackを使用してすべての方法を抽象化することになっています。 'node -v v4.4.5'' npm -v 5.0.3' –

+1

はい、create-react-appは、開発者のためにこれらのツールの設定を抽象化しますが、それでも環境をサポートする必要があります。 https://node.greenを見ると、ES6の構造化機能は6.4.0までサポートされていません。EC2インスタンスで稼動しているノードをアップグレードする必要があります –

答えて

1

create-react-app README によれば、アプリケーションをビルドして実行するには(ノード4.4.5を使用している)、EC2インスタンスにNode> = 6をインストールする必要があります。

エラーは、ノード4がノード6.4.0(http://node.greenを参照)まで導入されていないES6構造解除構文の処理方法をノード4が認識していないことです。

+0

ありがとうございます。それが問題でした。 –