javascript - Webpack Babel Function("r", "regeneratorRuntime = r")(r) 违反 unsafe-eval CSP
问题描述
我正在使用下面的 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
}
]
]
}
}
}
]
}
};
如果我加载适当的页面,我会收到以下错误:
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'".
当我单击所有 unsafe-eval 错误时,它们都指向相应文件:
}(e.exports);
try {
regeneratorRuntime = t
} catch (e) {
Function("r", "regeneratorRuntime = r")(t)
}
错误在线Function("r", "regeneratorRuntime = r")(t)
在遇到错误的 JS 文件中,我使用的是import, export
,async await
和arrow functions
.
我做了一些研究,它说这是由于引入了新的 JS 方法,Babel 无法识别。但我使用的是最新的 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"
}
解决方案
推荐阅读
- python - 检测阵列的抛物面形部分
- scala - 带有 List 的泛型类型的 JsonReader
- xcode - Xcode 如何在 Core Data 中预加载关系数据?
- python - 在熊猫数据框中计算相同的日期
- c++ - 尽管我添加了 boost 库,但 Eclipse 并没有在 C++ 中构建它们。为什么?
- fonts - 不同操作系统的不同字体系列
- javascript - 在javascript中将选项对象添加到2个选择框
- keycloak - Keycloak:用户的临时和永久锁定
- scala - 使用kafka的sbt项目火花流
- android - 未调用 Admob 奖励视频广告事件