对于Webpack 4构建中的旧版浏览器,如何使用模式“ \ u {<alphanumerical>}”对Unicode字符进行编码?

时间:2019-02-22 17:18:50

标签: javascript webpack minify webpack-4

我需要使我们的网站可访问Chrome 41和IE11。但是,最小化引入了一些Unicode字符,这些字符在较新的浏览器中根本不会引起任何麻烦,但在前面提到的浏览器中会导致“非法令牌”和“期望的十六进制数字”错误。

请从缩小的捆绑包中查看以下缩短的代码:

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

这对应于Unicode Character 'MATHEMATICAL FRAKTUR CAPITAL A' (U+1D504),也称为。但是,在Chrome 41(在GoogleBot中使用的一种)和IE11(从未下载过Chrome或Firefox的Windows 8.x用户)中,它被视为非法令牌。

有没有Webpack插件或转换工具,可以对这些值进行不同的编码?

我们目前使用UglifyJS插件进行缩小。

1 个答案:

答案 0 :(得分:0)

实际上,我没有解决此问题,但我意识到版本"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,
        },
      },
    }),