2017-04-25 98 views
0

我有一個使用ES6功能編寫的nodejs包作爲'let',擴展運算符(...)和函數參數的默認值。Laravel Mix使用`npm run dev`打包`

的事情是當我運行Laravel混合的npm run production,錯誤顯示出來,這是以下內容:

ERROR Failed to compile with 1 errors         
error 
/js/app.js from UglifyJs 
Unexpected token: name (DateTime) [./~/vdatetime/src/datetime.js:3,0] 
[/js/app.js:40347,4] 

npm ERR! Linux 4.4.0-72-generic 
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "production" 
npm ERR! node v7.4.0 
npm ERR! npm v4.1.2 
npm ERR! code ELIFECYCLE 
npm ERR! @ production: `cross-env NODE_ENV=production 
node_modules/webpack/bin/webpack.js --progress --hide-modules -- 
config=node_modules/laravel-mix/setup/webpack.config.js` 
npm ERR! Exit status 2 

(好像是let操作符是在起因於第3行)

但是當我嘗試npm run dev時,一切都按預期工作。 任何想法爲什麼它無法傳輸代碼?

+0

向我們展示'let name'的行然後 –

+0

傳播運算符是否需要Babel第2階段預設? – Joe

回答

0

Uglify無法解析ES6,它會拋出語法錯誤。首先轉換爲ES5,用babel後處理生成的JS,或者使用不同的縮小器。

+0

我在'beforepublishOnly'腳本(當你鍵入'npm publish'時運行)執行的軟件包中添加了babel,以便在Uglify開始縮小它時將已發佈的腳本轉換爲ES5 – vTripes