【问题标题】:How to track down Uglify error with Ember CLI如何使用 Ember CLI 追踪 Uglify 错误
【发布时间】:2023-03-05 08:30:01
【问题描述】:

当我在开发中构建我的 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) 不是我在任何地方都可以找到的文件。

如果有人可以给我一个关于如何追踪这个错误的建议,我将非常感激!

【问题讨论】:

    标签: ember.js ember-cli uglifyjs


    【解决方案1】:

    我对这个话题做了一些研究,因为我也遭受了“类似的事情”。

    在我的 ember 项目中,我使用 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 时,它不会抛出语法错误。


    顺便说一句,我在这个奇怪问题上归零的一个有用方法是在命令行上全局安装 uglifyjs 并手动运行它,直到找到一个合理的行号来发现问题(let vs var)。


    请记住,ember build 只会在实际安装在 node_modules 中的东西上运行。在调试此问题时,一个问题是在进行一些试错测试时安装了不同的版本。

    【讨论】:

      【解决方案2】:

      运行 ember init 并替换 bower.jsonpackage.json 使错误消失。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-05
        • 2011-11-05
        • 2011-05-10
        • 1970-01-01
        相关资源
        最近更新 更多