Saya berlari ke peningkatan ini salah satu tema contrib saya ke Drupal 8 karena saya ingin jquery.once untuk pengguna anonim. Inilah yang saya lakukan yang bekerja sangat baik:
Di herchel.libraries.yml
herchel-corescripts:
version: VERSION
js:
js/scripts.js: {}
dependencies:
- core/jquery
- core/drupal.ajax
- core/drupal
- core/drupalSettings
- core/jquery.once
Kemudian di file herchel.theme tema Anda .
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);
}
Perhatikan indentasi juga untuk kode YML. Meskipun belum benar-benar didokumentasikan dengan baik, Anda dapat melihat masalah ini dan log perubahannya.
Ganti hook_library_info () dengan file * .libraries.yml
Perhatikan bahwa Anda juga melihat file "scripts.js" tema teoretis dalam kode di atas tetapi Anda mungkin tidak membutuhkannya. Dalam tema saya, itulah yang menggunakan jquery untuk memanggil kode khusus.
Kode ini mungkin juga merupakan referensi yang baik untuk bit YML. Perhatikan bahwa dalam kedua kasus version
berada pada tingkat yang sama dengan dependencies
.
Saya juga membuat daftar masalah Drupal 8 yang saya temui dan ikut serta dalam peningkatan D8 saya.
Memperbarui:
Saya telah memperbaiki kode, kami mengalami masalah ini: Ganti nilai array perpustakaan #attached dengan string penyedia-namespaced
Catat ini:
$libraries['#attached']['library'][] = array('herchel', 'herchel-corescripts');
vs.ini
$libraries['#attached']['library'][] = 'herchel/herchel-corescripts';
Saya menguji dan kesalahan hilang. :)
version
agar sesuaidependencies