uglify 字符串中的无效十六进制字符模式

uglify Invalid hex-character pattern in string

这是我的代码:

var xxx = '\u{1F393}'

当我使用 gulp-uglify 时,我收到以下错误消息:

'Invalid hex-character pattern in string'

很遗憾,您的 gulp-uglify 似乎不支持 unicode point escapes。对于这个表情符号,您可以将其写成功能相同的代理对 \ud83c\udf93.

console.log('\u{1F393}');
console.log('\ud83c\udf93');

这是一个简单的脚本,可以帮助您将表情符号转换成它们的代理对:

const str = '';
const str2 = '\u{1F393}';

function getEscaped(str) {
  var ret = '';
  for (var i=0; i<str.length; i++) {
    var code = str.charCodeAt(i).toString(16);

    ret += '\u' + code;
  }
  
  return ret;
}

const result = getEscaped(str);
console.log(result);
console.log(eval(`"${result}"`));
console.log(getEscaped(str2));