Рейтинг:4

Как переопределить один файл JavaScript, используемый в библиотеке?

флаг zw

Я пытаюсь переопределить файл JavaScript автозаполнения API поиска. В mytheme.libraries я добавил следующие строки.

mytheme_autocomplete:
  js:
    'активы/js/autocomplete.js': { }

В mytheme.info я добавил следующие строки.

библиотеки-переопределить:
  search_api_autocomplete/search_api_autocomplete:
    js:
      составная часть:
        js/search_api_autocomplete.js: mytheme_autocomplete

Когда я захожу на сайт, js/search_api_autocomplete.js все еще загружается, а assets/js/autocomplete.js не загружается.

Как переопределить один файл JavaScript, используемый в библиотеке?

Рейтинг:8
флаг in

Если вы переопределяете один файл js, вам нужно указать файл, а не библиотеку:

библиотеки-переопределить:
  search_api_autocomplete/search_api_autocomplete:
    js:
      js/search_api_autocomplete.js: активы/js/autocomplete.js

Однако укажите библиотеку вашей темы, если вы собираетесь переопределить всю библиотеку:

библиотеки-переопределить:
  search_api_autocomplete/search_api_autocomplete: mytheme/mytheme_autocomplete

См. Переопределение и расширение библиотек документация по д.о.

May  avatar
флаг zw
Спасибо, я смог переопределить всю библиотеку, используя ваш второй пример, но не смог переопределить один файл JS в вашем первом примере/
sonfd avatar
флаг in
Я полагаю, что вы, возможно, добавили дополнительный слой «компонент» в определение переопределений. Этого не должно быть, так как библиотека search_api_autocomplete не определяет javascript таким образом. Я обновил пример чем-то, что должно работать с этим файлом.
sonfd avatar
флаг in
Кстати, я считаю, что веса компонента/темы/базы и т. д. применяются только к файлам css, а не к файлам js, т.е. js никогда не будет иметь компонент в своей иерархии определений. См. https://www.drupal.org/node/2274843#library.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.