当我在开发中构建我的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)不是一个我在任何地方都能找到的文件。
如果有人能给我一个如何追踪这个错误的建议,我将不胜感激!
发布于 2017-01-21 07:54:07
我在这个话题上做了一些研究,因为我也患有“类似的东西”。
在我的ember项目中,我使用了ember-browserify,它负责将NPM脚本复制到vendor.js中
事实证明,在执行此复制时,ember-browserify不会转换ES5/ES6脚本,并且uglify-js (插件崩溃)不支持ES语法。
您可以看到这个问题:https://github.com/ef4/ember-browserify/issues/97和https://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时,它不会抛出语法错误。
顺便说一下,我专注于这个奇怪问题的一个有用的方法是在命令行上全局安装uglifyjs,并手动运行它,直到我找到一个合理的行数来发现这个问题(let vs var)。
请记住,ember构建将仅在实际安装在node_modules中的内容上运行。在调试这个问题时,一个问题是在做一些试验/错误测试时安装了不同的版本。
发布于 2016-01-30 05:22:08
运行ember init并替换bower.json和package.json使错误消失。
https://stackoverflow.com/questions/35093366
复制相似问题