import无法在CentOS中编译?

我把项目传到腾讯云之后无法启动,错误原因是因为app.js中使用了import

clipboard.png

这是package.json中的script

clipboard.png

本地开发我用的npm run dev,服务器上我尝试了prod-testprod都会报错,用pm2也不行(应该和foreverpm2无关)。

server-wrapper.js的内容只是加了一个Register Hook,参考的stackoverflow上的帖子

我在服务器上也尝试了npm run dev,但是在安装babel-cli的时候报警告(不过应该没关系)

clipboard.png

项目更详细的代码在这里

-----------update-------------
是不是babel-node有问题?

服务器上:
clipboard.png

本地:
clipboard.png

--------------update-------------
又发现一个问题是,如果在本地用babel-register,跑起来会报ReferenceError: regeneratorRuntime is not defined。如果在服务器上用,就直接报SyntaxError: Unexpected token import

阅读 3.7k
3 个回答

最后的解决方法:

使用babel-registerbabel-preset-es2015app.js再包裹一层

server-wrapper.js

require('babel-register')({
    presets: ['es2015']
})
require('./app.js')

只有在服务器上才执行这个脚本,本地开发还是用babel-node,不过依然不太清楚原因,可能是和babel-preset-env有关

1.首先,你可以直接在服务器上用babel-node启动app.js试试看。如果能起来说明是forever的问题
2.如果不能起来,是不是你的babel-node的版本不对

node目前不支持import写法。

所以要么改成require,要么使用babel-register

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题