grunt-contrib-uglify在使用函数参数与默认值时抛出错误

我使用Grunt 1.0.1与grunt-contrib-uglify 2.0.0来uglify我项目的连接.js文件。 这一直工作得很好,直到今天,我引入了一个带有默认值的函数参数的JavaScript函数。

现在Grunt任务导致这个错误消息:

Running "uglify:app" (uglify) task JS_Parse_Error { message: 'SyntaxError: Unexpected token operator «=», expected punc «,»', filename: 'app.js', 

与此任务相呼应的app.js行是:

 function addNumbers(a, b=1){ console.log(a + b); } 

行中的确切列是b=1地方。

如果我删除默认值,一切正常工作再次。

为什么grunt-contrib-uglify在这里抱怨? 我怎样才能解决这个问题?

引用错误消息,显然你不使用ES6。 您为b设置默认值的方式仅适用于ES6。

以下是您可以设置b的默认值

 function addNumbers(a, b) { b = b || 1; console.log(a + b); } 

如果你也想接受b的值为0 ,那么你可以检查b是否是undefined|| 不是将b的默认值设置为1

 function addNumbers(a, b) { b = (b === undefined || typeof b !== 'number') ? 1 : b; console.log(a + b); }