我已经在我的本地计算机上与create-react-app
玩了一会儿。我还创建了一个基本express
应用,我在ec2
实例上运行,所以我想将基于create-react-app
的项目推送到ec2
并投放建立。感兴趣的两个命令是npm run start
和npm 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和前端路由。
答案 0 :(得分:1)
按create-react-app README ,您需要在EC2实例上安装Node> = 6才能构建和运行应用程序(海报使用的是Node 4.4.5)。
您看到的错误是Node 4不知道如何处理ES6解构语法,这在语法6.4.0之前没有引入(参见http://node.green)。