在ec2上构建create-react-app

时间:2017-06-26 03:56:52

标签: reactjs amazon-web-services amazon-ec2

我已经在我的本地计算机上与create-react-app玩了一会儿。我还创建了一个基本express应用,我在ec2实例上运行,所以我想将基于create-react-app的项目推送到ec2并投放建立。感兴趣的两个命令是npm run startnpm run build

不幸的是,当我在ec2上运行npm start(我相信'实际上并不需要执行命令)时,我会遇到很多错误。

[ec2-user@ip-172-31-62-133 ab-site-2017-summer]$ npm start

> ab-site@0.1.0 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! ab-site@0.1.0 start: `react-scripts start`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the ab-site@0.1.0 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

note npm install node_modules ec2此项目的dist时,我确实注意到了一些问题。我也不是100%(作为非网络开发者)我的基本方法是否正确。我的目标是使用npm build构建express资产,然后指向我的index.html应用,为我的域名索引路由提供react-router文件。我的前端,通过app.service("dangerousAPI", function($q) { this.get = get; function get(funcName, url) { var dataDefer = $q.defer(); window[funcName] = function(x) { dataDefer.resolve(x); } var tag = document.createElement("script"); tag.src = url; document.getElementsByTagName("head")[0].appendChild(tag); return dataDefer.promise; } }) 应该处理所有的UI和前端路由。

1 个答案:

答案 0 :(得分:1)

create-react-app README ,您需要在EC2实例上安装Node> = 6才能构建和运行应用程序(海报使用的是Node 4.4.5)。

您看到的错误是Node 4不知道如何处理ES6解构语法,这在语法6.4.0之前没有引入(参见http://node.green)。