Как кодировать символы Юникода с помощью шаблона "\ u {<alphanumerical>}" для старых браузеров в сборке webpack 4? - PullRequest
0 голосов
/ 22 февраля 2019

Мне нужно сделать наш сайт доступным для Chrome 41 и IE11.Однако минификация привела к появлению некоторых символов Юникода, которые вообще не вызывают проблем в новых браузерах, но вызывают ошибки «Недопустимый токен» и «Ожидаемая шестнадцатеричная цифра» в вышеупомянутых браузерах.

См. Этот сокращенный код из свернутого пакета:

return e.export = { Afr:"\u{1d504}" }

Это соответствует Unicode Character 'MATHEMATICAL FRAKTUR CAPITAL A' (U+1D504), также известному как ?.Однако он считается недопустимым токеном в Chrome 41 (тот, который используется в GoogleBot) и IE11 (пользователи с Windows 8.x, которые никогда не скачивали Chrome или Firefox).

Существует ли какой-либо плагин или инструмент преобразования веб-пакетов, который кодируетэти значения по-разному?

В настоящее время мы используем плагин UglifyJS для нашего минимизации.

1 Ответ

0 голосов
/ 25 февраля 2019

На самом деле я не исправил эту проблему, но понял, что версия "uglifyjs-webpack-plugin": "1.3.0", была настроена для кодирования этих символов (скорее всего, из react-html-parser).

См. Конфигурацию, для которой я удалилзаставить работать с браузерами.

new UglifyJsPlugin({
    uglifyOptions: {
      output: {
          // This was turned in the app because "emoji and regex" values 
          // were not minified properly, citing this issue:
          // https://github.com/facebook/create-react-app/issues/2488
          // However, the issue was solved a long time ago and this just broke
          // the site for IE11 and Chrome 41/GoogleBot
          ascii_only: true,
        },
      },
    }),
...