1

使用 webpack 捆绑 web 应用程序时,我需要将一些 3rd 方脚本注册到全局(即window)命名空间,脚本加载器似乎是为此Webpack 设计的 - 如何将非模块脚本加载到全局范围内 | 窗口

但是,它有一个很大的缺点,生成的代码使用eval.call不符合大多数 CSP 安全准则,因此强烈建议不要在生产中使用它。是否有任何替代的 webpack 加载器可以用来在没有 XSS 漏洞的情况下实现相同的目的?

GitHub 项目https://github.com/webpack-contrib/script-loader也已经存档

4

1 回答 1

0

到目前为止,这看起来是最好的解决方案,但它很乏味:

https://webpack.js.org/loaders/imports-loader/

基本上,您需要知道每个脚本正在执行什么副作用,imports-loader 为您提供了实现它们的方法。例如,您可以将脚本包装在绑定this到全局window对象的函数调用中。

如果我们能够以某种方式让脚本按顺序运行会很好,但我也看到在没有 . 的 Webpack 中这将是多么困难eval,这就是问题所在。

于 2021-09-22T04:47:08.310 回答