Alpine 添加了一个新的构建来与内容安全策略一起使用
最后更新于 作者: Eric L. Barnes
Caleb Porzio 宣布 Alpine.js 现在有一个 CSP 构建,可以在需要 CSP 的环境中使用
为了使 Alpine 能够从 HTML 属性中执行纯字符串作为 JavaScript 表达式,例如 x-on:click="console.log()",它需要依赖于违反“unsafe-eval”内容安全策略的实用程序,而某些应用程序可能为了安全目的而强制执行该策略。
为了适应需要此 CSP 的环境,Alpine 提供了一个替代构建,该构建不会违反“unsafe-eval”,但语法限制更大。
需要注意的一点是,使用此新构建时,必须使用 Alpine.data
由于 Alpine 无法再将字符串解释为纯 JavaScript,因此它必须手动解析和构建 JavaScript 函数。
由于此限制,您必须使用 Alpine.data 来注册您的 x-data 对象,并且必须仅通过键来引用其中的属性和方法。
此新构建可作为 CDN 或通过 npm install @alpinejs/csp
获得
查看 官方文档 以获取完整详细信息和说明。
注意:当被问及 Livewire 支持时,Caleb 说,“不幸的是,还没有,因为 Livewire 有一个或两个地方依赖于 eval (wire:click="something('one', 'two')")
之类的东西”。