Я был привлечен к проекту Drupal 8 с несколькими пользовательскими модулями, которые должны использовать Angular.js. Каков наилучший способ предоставления файлов углов каждому модулю?
Прямо сейчас, каждый модуль ссылается на удаленные угловые файлы, размещенные на googleapis.com в my-module.libraries.yml
.
my-module:
version: 1.x
js:
https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js: { type: external, minified: true }
https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular-sanitize.min.js { type: external, minified: true }
js/my-module.js: {preprocess: false}
dependencies:
- core/jquery
- core/jquery.ui
- core/jquery.ui.accordion
Тем не менее, я предпочел бы размещать угловые файлы локально и перечислять их как зависимости, как jQuery.
Я знаю, что могу поместить файлы Angular в сам модуль, но тогда каждому модулю понадобится его собственная копия.
Каким бы ни был правильный способ сделать это, моя цель состоит в том, чтобы размещать угловые файлы локально и ссылаться на них из каждого модуля, который зависит от угла.
Самый простой способ решить это - добавить папку /libraries
в корневом каталоге проекта Drupal. Затем создайте подкаталог для каждой используемой внешней библиотеки и укажите, что из файла module.libraires.yml
.
Например, я создал /libraries/angular/js
, разместил там файлы и затем ссылался на них, начиная с /
в приведенном ниже коде.
my-module:
version: 1.x
js:
/libraries/angular/js/angular.min.js: {}
/libraries/angular/js/angular-sanitize.min.js: {}
js/my-module.js: {}
dependencies:
- core/jquery
Теперь любой модуль внутри проекта может ссылаться на одни и те же файлы.