我把项目传到腾讯云之后无法启动,错误原因是因为app.js
中使用了import
这是package.json
中的script
本地开发我用的npm run dev
,服务器上我尝试了prod-test
和prod
都会报错,用pm2
也不行(应该和forever
或pm2
无关)。
server-wrapper.js
的内容只是加了一个Register Hook,参考的stackoverflow上的帖子
我在服务器上也尝试了npm run dev
,但是在安装babel-cli
的时候报警告(不过应该没关系)
项目更详细的代码在这里
-----------update-------------
是不是babel-node有问题?
服务器上:
本地:
--------------update-------------
又发现一个问题是,如果在本地用babel-register
,跑起来会报ReferenceError: regeneratorRuntime is not defined
。如果在服务器上用,就直接报SyntaxError: Unexpected token import
最后的解决方法:
使用
babel-register
和babel-preset-es2015
将app.js
再包裹一层server-wrapper.js
只有在服务器上才执行这个脚本,本地开发还是用
babel-node
,不过依然不太清楚原因,可能是和babel-preset-env
有关