Ember.js 如何使用Ember CLI跟踪丑陋的错误
当我在开发中构建Ember CLI应用程序时,它运行良好。当我试着为生产而建造它时,丑八怪很不高兴:Ember.js 如何使用Ember CLI跟踪丑陋的错误,ember.js,ember-cli,uglifyjs,Ember.js,Ember Cli,Uglifyjs,当我在开发中构建Ember CLI应用程序时,它运行良好。当我试着为生产而建造它时,丑八怪很不高兴: $ 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 <anon
$ 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)
$ember build--environment=production
版本:1.13.15
生成失败。
文件:assets/vendor.js(70503:3)
意外的令牌名称«使用»,预期为punc«,»
错误
在新的JS_Parse_错误处(eval at(/Users/michael/Code/queue/node_modules/brocoli uglify sourcemap/node_modules/uglify JS/tools/node.JS:24:4),:1508:18)
at js_错误(eval at(/Users/michael/Code/queue/node_modules/brocoli-uglify-sourcemap/node_modules/uglify-js/tools/node.js:24:4),:1516:11)
在croak(eval at(/Users/michael/Code/queue/node_modules/brocoli-uglify-sourcemap/node_modules/uglify-js/tools/node.js:24:4),:2008:9)
at令牌错误(eval at(/Users/michael/Code/queue/node_modules/brocoli uglify sourcemap/node_modules/uglify js/tools/node.js:24:4),:2016:9)
at expect_令牌(eval at(/Users/michael/Code/queue/node_modules/brocoli uglify sourcemap/node_modules/uglify js/tools/node.js:24:4),:2029:9)
在expect(eval at(/Users/michael/Code/queue/node_modules/brocoli-uglify-sourcemap/node_modules/uglify-js/tools/node.js:24:4),:2032:36)
at expr_列表(eval at(/Users/michael/Code/queue/node_modules/brocoli uglify sourcemap/node_modules/uglify js/tools/node.js:24:4),:2535:44)
at下标(eval at(/Users/michael/Code/queue/node_modules/brocoli uglify sourcemap/node_modules/uglify js/tools/node.js:24:4),:2674:30)
at下标(eval at(/Users/michael/Code/queue/node_modules/brocoli uglify sourcemap/node_modules/uglify js/tools/node.js:24:4),:2651:20)
在expr_atom(eval at(/Users/michael/Code/queue/node_modules/brocoli uglify sourcemap/node_modules/uglify js/tools/node.js:24:4),:2527:20)
我不知道这个错误意味着什么-意外的令牌名称«使用»,预期的punc«,»
-并且资产/vendor.js(70503:3)
不是我在任何地方都能找到的文件
如果有人能给我一个如何追踪这个错误的建议,我将非常感激 运行
ember init
并替换bower.json
和package.json
使错误消失。我对这个主题做了一些研究,因为我也经历了“类似的事情”
在我的ember项目中,我使用ember-browserify
将NPM脚本复制到vendor.js
事实证明,ember-browserify
在执行此复制时不转换ES5/ES6脚本,uglify-js
(插件崩溃)不支持ES语法
你可以看到这个问题:和
下面是我如何解决这个问题的(非常简单)
在终端上:npm安装——保存开发成员浏览babelify babel-preset-es2015
environment.js
browserify:{
扩展:['.js'],
转换:[
['babelify',{预设:[“es2015”]}]
]
},
现在,当您运行ember build--environment=production
时,它不会抛出语法错误
顺便说一句,我关注这个奇怪问题的一个有用方法是在命令行上全局安装uglifyjs并手动运行它,直到找到一个合理的行号来发现问题(let vs var)
请记住,ember build将只在实际安装在node_模块中的东西上运行。调试此问题时,有一个问题是,在进行一些尝试/错误测试时,安装了不同的版本