Политика безопасности содержимого (CSP)
Чтобы Alpine мог выполнять простые строки из HTML-атрибутов как выражения JavaScript, например x-on:click="console.log()"
, ему необходимо использовать утилиты, нарушающие принцип «unsafe-eval» Политики безопасности содержимого, которую некоторые приложения могут применять в целях безопасности.
Чтобы приспособиться к средам, где этот CSP необходим, Alpine предлагает альтернативную сборку, которая не нарушает «unsafe-eval», но имеет более строгий синтаксис.
Установка
Вы можете использовать эту сборку, включив её в тег <script>
или установив с помощью менеджера пакетов.
Через CDN
Вы можете включить CDN этой сборки в виде тега <script>
, как это делается в стандартной сборке Alpine:
Через менеджер пакетов
Вы можете установить эту сборку для использования внутри вашего пакета следующим образом:
Затем инициализируйте её из вашего пакета:
Пример использования
Чтобы дать представление о том, как может выглядеть использование сборки CSP, вот копируемый HTML-файл с работающим компонентом счётчика, использующим обычную настройку CSP:
Ограничения API
Поскольку Alpine больше не может интерпретировать строки как обычный JavaScript, ему приходится разбирать и конструировать из них JavaScript-функции вручную.
В связи с этим ограничением для регистрации объектов x-data
необходимо использовать Alpine.data
, а на свойства и методы из него ссылаться только по ключу.
Например, такой встроенный компонент не будет работать.
Однако, если разбить выражения на внешние API, то для сборки CSP будет справедливо следующее:
Сборка CSP поддерживает доступ к вложенным свойствам (аксессорам свойств) с использованием точечной нотации.