鍍金池/ 問答/Linux  HTML/ import無法在CentOS中編譯?

import無法在CentOS中編譯?

我把項目傳到騰訊云之后無法啟動,錯誤原因是因為app.js中使用了import

clipboard.png

這是package.json中的script

clipboard.png

本地開發(fā)我用的npm run dev,服務(wù)器上我嘗試了prod-testprod都會報錯,用pm2也不行(應(yīng)該和foreverpm2無關(guān))。

server-wrapper.js的內(nèi)容只是加了一個Register Hook,參考的stackoverflow上的帖子

我在服務(wù)器上也嘗試了npm run dev,但是在安裝babel-cli的時候報警告(不過應(yīng)該沒關(guān)系)

clipboard.png

項目更詳細(xì)的代碼在這里

-----------update-------------
是不是babel-node有問題?

服務(wù)器上:
clipboard.png

本地:
clipboard.png

--------------update-------------
又發(fā)現(xiàn)一個問題是,如果在本地用babel-register,跑起來會報ReferenceError: regeneratorRuntime is not defined。如果在服務(wù)器上用,就直接報SyntaxError: Unexpected token import

回答
編輯回答
哎呦喂

1.首先,你可以直接在服務(wù)器上用babel-node啟動app.js試試看。如果能起來說明是forever的問題
2.如果不能起來,是不是你的babel-node的版本不對

2017年7月15日 19:35
編輯回答
陪我終

node目前不支持import寫法。

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

2018年3月26日 11:22
編輯回答
情已空

最后的解決方法:

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

server-wrapper.js

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

只有在服務(wù)器上才執(zhí)行這個腳本,本地開發(fā)還是用babel-node,不過依然不太清楚原因,可能是和babel-preset-env有關(guān)

2017年1月6日 07:55