Mi sono imbattuto in questo aggiornamento di uno dei miei temi di contribuzione a Drupal 8 come volevo jquery.once per utenti anonimi. Ecco cosa ho fatto che funziona alla grande:
In herchel.libraries.yml
herchel-corescripts:
version: VERSION
js:
js/scripts.js: {}
dependencies:
- core/jquery
- core/drupal.ajax
- core/drupal
- core/drupalSettings
- core/jquery.once
Quindi nel file herchel.theme del tuo tema .
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);
}
Prestare attenzione anche al rientro per il codice YML. Anche se non è ancora ben documentato, puoi dare un'occhiata a questo problema e al suo registro delle modifiche.
Sostituisci hook_library_info () con il file * .libraries.yml
Si noti che nel codice sopra viene visualizzato anche il file "scripts.js" di un tema teorico, ma potrebbe non essere necessario. Nel mio tema, questo è ciò che utilizza jquery per chiamare il codice personalizzato.
Questo codice è probabilmente un buon riferimento anche per i bit YML. Si noti che in entrambi i casi version
è allo stesso livello di dependencies
.
Ho anche fatto un elenco di problemi di Drupal 8 che ho riscontrato e ho preso parte con il mio aggiornamento D8.
Aggiornare:
Ho corretto il codice, abbiamo riscontrato questo problema: sostituisci i valori dell'array della libreria #attached con stringhe basate sul nome del provider
Nota questo:
$libraries['#attached']['library'][] = array('herchel', 'herchel-corescripts');
vs.this
$libraries['#attached']['library'][] = 'herchel/herchel-corescripts';
Ho provato e gli errori sono andati via. :)
version
corrispondenzadependencies