Webpack Babel Function("r", "regeneratorRuntime = r")(r) 违反了 unsafe-eval CSP

Isa*_*ton 5 javascript webpack babeljs

我正在使用下面的 webpack 配置来构建我所有的 JS 文件:

const path = require('path');
const glob = require('glob');

module.exports = {
  entry: Object.fromEntries(glob.sync(path.resolve(__dirname, 'src/js/profile/*.js')).map((v) => [
    path.basename(v, '.js'), v,
  ])),
  output: {
    filename: '[name].js',
    path: path.resolve(__dirname, 'dist/js/profile'),
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ["@babel/preset-env"],
            plugins: [
              [
                "@babel/plugin-transform-runtime",
                {
                  "useESModules": true
                }
              ]
            ]
          }
        }
      }
    ]
  }
};

Run Code Online (Sandbox Code Playgroud)

如果我加载了适当的页面,我会收到以下错误:

Uncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self'".
Run Code Online (Sandbox Code Playgroud)

当我点击所有 unsafe-eval 错误时,它们都指向相应文件:

            }(e.exports);
            try {
                regeneratorRuntime = t
            } catch (e) {
                Function("r", "regeneratorRuntime = r")(t)
            }
Run Code Online (Sandbox Code Playgroud)

错误在行 Function("r", "regeneratorRuntime = r")(t)

在遇到错误的 JS 文件中,我使用import, export,async awaitarrow functions.

我做了一些研究,它说这是由于引入了 Babel 无法识别的新 JS 方法。但我使用的是最新的 Babel 和 Webpack:

  "devDependencies": {
    "@babel/cli": "^7.12.8",
    "@babel/core": "^7.12.9",
    "@babel/plugin-transform-runtime": "^7.12.1",
    "@babel/preset-env": "^7.12.7",
    "babel-loader": "^8.2.2",
    "glob": "^7.1.6",
    "grunt": "^1.3.0",
    "grunt-contrib-concat": "^1.0.1",
    "grunt-contrib-cssmin": "^3.0.0",
    "grunt-contrib-uglify": "^5.0.0",
    "webpack": "^5.10.0",
    "webpack-cli": "^4.2.0"
  }
Run Code Online (Sandbox Code Playgroud)