Я побежал к обновлению одной из моих тем для Drupal 8, так как я хотел jquery.once для анонимных пользователей. Вот что я сделал, и это прекрасно работает:
В herchel.libraries.yml
herchel-corescripts:
version: VERSION
js:
js/scripts.js: {}
dependencies:
- core/jquery
- core/drupal.ajax
- core/drupal
- core/drupalSettings
- core/jquery.once
Затем в файле herchel.theme вашей темы .
function herchel_preprocess_page(&$vars, $hook) {
// Render the library as laid out in herchel.libraries.yml
$libraries['#attached']['library'][] = 'herchel/herchel-corescripts';
\Drupal::service('renderer')->renderRoot($libraries);
}
Обратите внимание на отступы и для кода YML. Хотя это еще не очень хорошо задокументировано, вы можете взглянуть на эту проблему и на ее журнал изменений.
Замените hook_library_info () на файл * .libraries.yml
Обратите внимание, что вы также видите файл "scripts.js" теоретической темы в приведенном выше коде, но он вам может не понадобиться. В моей теме это то, что использует jquery для вызова пользовательского кода.
Этот код , вероятно, также является хорошим справочником для битов YML. Обратите внимание, что в обоих случаях version
находится на том же уровне, что и dependencies
.
Я также составил список проблем, с которыми я столкнулся в Drupal 8, и принял участие в обновлении D8.
Обновить:
Я исправил код и столкнулся с этой проблемой: заменил значения массива библиотеки #attached на строки с именами провайдеров
Обратите внимание:
$libraries['#attached']['library'][] = array('herchel', 'herchel-corescripts');
vs.this
$libraries['#attached']['library'][] = 'herchel/herchel-corescripts';
Я проверил, и ошибки ушли. :)
version
чтобы соответствоватьdependencies