uglify Неверный шестнадцатеричный шаблон в строке - PullRequest
0 голосов
/ 22 октября 2018

Вот мой код:

var xxx = '\u{1F393}'

Когда я использую gulp-uglify, я получаю следующее сообщение об ошибке:

'Неверный шестнадцатеричный шаблон в строке'

1 Ответ

0 голосов
/ 22 октября 2018

К сожалению, похоже, что ваш gulp-uglify не поддерживает экранирование точек Unicode .Для этого смайлика вы можете написать его функционально идентичной суррогатной парой \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));
...