2016-01-29 33 views
3

當我在開發中構建我的Ember CLI應用程序時,它工作正常。當我嘗試建立它的生產,醜化得到不高興:如何使用Ember CLI跟蹤Uglify錯誤

$ ember build --environment=production 
version: 1.13.15 
Build failed. 
File: assets/vendor.js (70503:3) 
Unexpected token name «use», expected punc «,» 
Error 
    at new JS_Parse_Error (eval at <anonymous> (/Users/michael/Code/queue/node_modules/broccoli-uglify-sourcemap/node_modules/uglify-js/tools/node.js:24:4), <anonymous>:1508:18) 
    at js_error (eval at <anonymous> (/Users/michael/Code/queue/node_modules/broccoli-uglify-sourcemap/node_modules/uglify-js/tools/node.js:24:4), <anonymous>:1516:11) 
    at croak (eval at <anonymous> (/Users/michael/Code/queue/node_modules/broccoli-uglify-sourcemap/node_modules/uglify-js/tools/node.js:24:4), <anonymous>:2008:9) 
    at token_error (eval at <anonymous> (/Users/michael/Code/queue/node_modules/broccoli-uglify-sourcemap/node_modules/uglify-js/tools/node.js:24:4), <anonymous>:2016:9) 
    at expect_token (eval at <anonymous> (/Users/michael/Code/queue/node_modules/broccoli-uglify-sourcemap/node_modules/uglify-js/tools/node.js:24:4), <anonymous>:2029:9) 
    at expect (eval at <anonymous> (/Users/michael/Code/queue/node_modules/broccoli-uglify-sourcemap/node_modules/uglify-js/tools/node.js:24:4), <anonymous>:2032:36) 
    at expr_list (eval at <anonymous> (/Users/michael/Code/queue/node_modules/broccoli-uglify-sourcemap/node_modules/uglify-js/tools/node.js:24:4), <anonymous>:2535:44) 
    at subscripts (eval at <anonymous> (/Users/michael/Code/queue/node_modules/broccoli-uglify-sourcemap/node_modules/uglify-js/tools/node.js:24:4), <anonymous>:2674:30) 
    at subscripts (eval at <anonymous> (/Users/michael/Code/queue/node_modules/broccoli-uglify-sourcemap/node_modules/uglify-js/tools/node.js:24:4), <anonymous>:2651:20) 
    at expr_atom (eval at <anonymous> (/Users/michael/Code/queue/node_modules/broccoli-uglify-sourcemap/node_modules/uglify-js/tools/node.js:24:4), <anonymous>:2527:20) 

我在一個損失這個錯誤是什麼意思 - Unexpected token name «use», expected punc «,» - 和assets/vendor.js (70503:3)不是我能找到的任何地方的文件。

如果有人能給我一個關於如何追蹤這個錯誤的建議,我會很感激!

回答

1

運行ember init並替換bower.jsonpackage.json使錯誤消失。

2

我做了一些關於這個話題的研究,因爲我也遭受過「類似的事情」。

在我燼項目中,我使用ember-browserify這確實抄襲NPM腳本的工作分成了vendor.js

事實證明,這樣做複印時ember-browserify不轉換ES5/ES6腳本和uglify-js(該插件崩潰)不支持ES語法。

你可以看到這個問題:https://github.com/ef4/ember-browserify/issues/97https://github.com/mishoo/UglifyJS2/issues/448

這是我如何解決這個問題(非常容易)

在終端:npm install --save-dev ember-browserify babelify babel-preset-es2015

environment.js

browserify: { 
    extensions: ['.js'], 
    transform: [ 
    ['babelify', { presets: ["es2015"]}] 
    ] 
}, 

現在,當您運行ember build --environment=production時,它不會拋出語法錯誤。


順便說一句,我zero'd在這個奇怪的問題,一個有用的方法是在命令行安裝全局和uglifyjs手動運行它,直到我發現了一個合理的行號,發現這個問題(讓vs var)。


請記住,ember build只能運行在node_modules中實際安裝的東西上。在調試這個問題時,一個問題是在進行一些試驗/錯誤測試時,安裝的版本不同。