Corri para esse upgrade de um dos meus temas de contribuição para o Drupal 8, pois queria o jquery.once para usuários anônimos. Aqui está o que eu fiz que funciona muito bem:
Em herchel.libraries.yml
herchel-corescripts:
version: VERSION
js:
js/scripts.js: {}
dependencies:
- core/jquery
- core/drupal.ajax
- core/drupal
- core/drupalSettings
- core/jquery.once
Em seguida, no arquivo herchel.theme do seu 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);
}
Preste atenção ao recuo também para o código YML. Embora ainda não esteja realmente documentado, você pode dar uma olhada neste problema e em seu log de alterações.
Substitua hook_library_info () pelo arquivo * .libraries.yml
Observe que você também vê o arquivo "scripts.js" de um tema teórico no código acima, mas pode não ser necessário. No meu tema, é isso que usa o jquery para chamar código personalizado.
Esse código provavelmente também é uma boa referência para os bits YML. Observe que nos dois casos version
está no mesmo nível que dependencies
.
Também fiz uma lista dos problemas do Drupal 8 que encontrei e participei da minha atualização do D8.
Atualizar:
Corrigi o código, corremos para esse problema: Substitua os valores da matriz da biblioteca #attached por strings no provedor-namespaced
Observe o seguinte:
$libraries['#attached']['library'][] = array('herchel', 'herchel-corescripts');
vs.
$libraries['#attached']['library'][] = 'herchel/herchel-corescripts';
Eu testei e os erros foram embora. :)
version
para corresponderdependencies