J'ai rencontré cette mise à niveau de l'un de mes thèmes de contribution vers Drupal 8 car je voulais jquery.once pour les utilisateurs anonymes. Voici ce que j'ai fait qui fonctionne très bien:
Dans herchel.libraries.yml
herchel-corescripts:
version: VERSION
js:
js/scripts.js: {}
dependencies:
- core/jquery
- core/drupal.ajax
- core/drupal
- core/drupalSettings
- core/jquery.once
Puis dans le fichier herchel.theme de votre thème .
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);
}
Faites également attention à l'indentation pour le code YML. Bien qu'il ne soit pas encore très bien documenté, vous pouvez consulter ce problème et son journal des modifications.
Remplacez hook_library_info () par le fichier * .libraries.yml
Notez que vous voyez également le fichier "scripts.js" d'un thème théorique dans le code ci-dessus mais vous n'en aurez peut-être pas besoin. Dans mon thème, c'est ce qui utilise jquery pour appeler du code personnalisé.
Ce code est probablement aussi une bonne référence pour les bits YML. Notez que dans les deux cas version
est au même niveau que dependencies
.
J'ai également fait une liste des problèmes rencontrés avec Drupal 8 et j'ai participé à ma mise à niveau D8.
Mise à jour:
J'ai corrigé le code, nous avons rencontré ce problème: remplacez les valeurs du tableau de la bibliothèque #attached par des chaînes à espace de nom de fournisseur
Notez ceci:
$libraries['#attached']['library'][] = array('herchel', 'herchel-corescripts');
contre cela
$libraries['#attached']['library'][] = 'herchel/herchel-corescripts';
J'ai testé et les erreurs ont disparu. :)
version
pour faire correspondredependencies