Несколько пользовательских модулей Drupal 8, использующих одинаковую внешнюю библиотеку JS (например, Angular)

0

Я был привлечен к проекту 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 в сам модуль, но тогда каждому модулю понадобится его собственная копия.

Каким бы ни был правильный способ сделать это, моя цель состоит в том, чтобы размещать угловые файлы локально и ссылаться на них из каждого модуля, который зависит от угла.

Теги:
drupal-8

1 ответ

0
Лучший ответ

Самый простой способ решить это - добавить папку /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

Теперь любой модуль внутри проекта может ссылаться на одни и те же файлы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню