Chrome 扩展程序有一个关于 UTF-8 的 content.js 错误

Еле*_*ова 2 google-chrome utf-8 google-chrome-extension webpack-4

从 webpack 3.6.0 迁移到 webpack 4.29.6 并迁移到 babel-loader 8.0.0-beta.6(从 7.1.5)后,我看到错误:

未经检查的 runtime.lastError:无法为内容脚本加载文件“content.js”。它不是 UTF-8 编码的。

我对代码什么也没做,我只有 package.json 中的更新版本。

所以,我的应用程序不起作用。这里的问题在哪里?

Kar*_*kis 5

看起来某处的 JavaScript 代码包含非 ASCII 字符,Chrome 不喜欢代码缩小时处理它们的方式。如果您使用,terser-webpack-plugin您可以添加一个选项来处理此问题:

const TerserPlugin = require('terser-webpack-plugin');

module.exports = {
  mode: 'production',
  optimization: {
    minimizer: [
      new TerserPlugin({
        terserOptions: {
          output: { ascii_only: true },
        },
      }),
    ],
  },
  ...
};
Run Code Online (Sandbox Code Playgroud)

这是 terser repo 中的一个相关问题(非 ASCII 字符被转换为 UTF-8)。