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')")
之类的东西”。
![Eric L. Barnes photo](https://news.laravel.net.cn/storage/profile-photos/YlkXwoKe1xHNPfmxXdAbBIeCqg9kFE7CtyKySeI1.jpg)