grunt-contrib-uglify不会解析"let"关键字吗?

Mic*_*l M 23 javascript uglifyjs grunt-contrib-uglify

我收到一个错误,

'意外的令牌:名字(bazz)'

当我的咕噜声任务正在运行uglify时.我在那一行上唯一注意到的是我使用'let'关键字而不是'var',所以我不确定为什么会抛出这个错误.

我有一个if else语句,每个都有let varName,即:

function foo (bar) {
    if (condition) {
        let bazz = fn();
        //doSomething with bazz
        _.assign(bar, bazz);
    } else {
        let bazz = fn2();
        //doSomething different with bazz
        _.assign(bar, bazz);
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以通过var bazz = {};在if else子句之前使用它来改变它,但我想避免这种情况,因为我必须将bazz分配给fn()和fn2().

想知道是否有其他人遇到过这个以及他们做了什么来修复它.提前致谢!

Aaa*_*ron 19

在仔细研究了这个主题后,我发现grunt-contrib-uglify和gulp-uglify将UglifyJS作为依赖,它还不支持ES6"Harmony".按照https://github.com/mishoo/UglifyJS2/issues/448更新.

您还可以使用grunt-babel等工具将ES6代码编译为ES5.