使用UglifyJS时出现意外字符`错误?

问题描述

在运行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之类的工具进行翻译。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...