问题描述
在运行uglifyjs时,出现上述错误。代码如下:
$('.lazyload').each(function(i,j){
var h = $(j).attr( 'height' );
var w = $(j).attr( 'width' );
var at = `data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${w} ${h}"%3E%3C/svg%3E`;
$(j).attr('src',at);
});
我读到我需要将其翻译为ES5,但是我对此并不陌生,我不确定该怎么做。
解决方法
uglify-js only supports ECMAScript 5。这说明了为什么在包含模板文字的行上会出错,这是ECMAScript 2015引入的语法:
var at = `data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${w} ${h}"%3E%3C/svg%3E`;
// ^ error
您可以在不使用模板文字的情况下进行相同的分配,使用单引号文字和串联:
var at = 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 '
+ w + ' ' + h + '"%3E%3C/svg%3E';
或者,您也可以遵循uglify-js home page (github)
上的建议要缩小ECMAScript 2015或更高版本,请使用Babel之类的工具进行翻译。