Drupal 8:在哪里包含通用脚本

Drupal 8: where to include common scripts

我正在考虑向 drupal 8 添加一个新的 javascript 库。我希望能够从其他模块/库调用该库。

WordPress 执行此操作的方式是使用 wp_enqueue_scripts。使用公共库将确保我的库只加载一次。

drupal 中的现有实现是将依赖项添加到 yml 文件的方式

js:
 dependencies:
  - core/jquery

有没有一种方法可以添加我自己的 javascript 库作为可以在我的整个 drupal 实例中使用的依赖项(所有模块和主题都应该能够使用它作为依赖项)

如果您想添加任何自定义代码,您需要创建并启用您的自定义模块或主题,您可以在 my_module.libraries.yml 文件中定义您的自定义 javascript 文件,如下所示:

my_library:
  js:
    dist/js/my_stuff.js: {}
  dependencies:
    - core/jquery

在这种情况下,您的自定义代码位于 dist/js 文件夹中。 然后你应该将你的库添加到 Drupal。我通常使用 my_module.info.yml 以这种方式定义我的自定义库:

libraries:
  - my_module/my_library

您还可以将自定义库用作依赖项:

my_other_library:
  js:
    dist/js/my_other_stuff.js: {}
  dependencies:
    - core/jquery
    - my_module/my_library

有关附加库的更多信息: https://www.drupal.org/docs/8/creating-custom-modules/adding-stylesheets-css-and-javascript-js-to-a-drupal-8-module

关于 *.info.yml 文件的更多信息: https://www.drupal.org/docs/8/theming-drupal-8/defining-a-theme-with-an-infoyml-file