【问题标题】:Drupal 8 Multiple Custom Modules Using Same External JS Lib (e.g. Angular)Drupal 8 多个自定义模块使用相同的外部 JS 库(例如 Angular)
【发布时间】:2016-07-27 13:59:44
【问题描述】:

我被拉入了一个 Drupal 8 项目,其中包含多个需要使用 Angular.js 的自定义模块。向每个模块提供 Angular 文件的最佳方式是什么?

现在,每个模块都引用了由 googleapis.com 在my-module.libraries.yml 中托管的远程 Angular 文件。

my-module:
  version: 1.x
  js:
    https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js: { type: external, minified: true }
    https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular-sanitize.min.js { type: external, minified: true }
    js/my-module.js: {preprocess: false}
  dependencies:
    - core/jquery
    - core/jquery.ui
    - core/jquery.ui.accordion

但是,我更愿意在本地托管 Angular 文件并将它们列为依赖项,就像 jQuery 一样。

我知道我可以将 Angular 文件放在模块本身中,但是每个模块都需要自己的副本。

无论是什么正确的方法,我的目标是在本地托管 Angular 文件并从依赖于 Angular 的每个模块中引用它们。

【问题讨论】:

    标签: javascript angularjs drupal-8


    【解决方案1】:

    解决这个问题的最简单方法是在 Drupal 项目的根目录下添加一个/libraries 文件夹。然后为您正在使用的每个外部库创建一个子目录,并从您的 module.libraires.yml 文件中引用它。

    例如,我创建了/libraries/angular/js,将文件放入其中,然后在下面的代码中以/ 开头来引用它们。

    my-module:
      version: 1.x
      js:
        /libraries/angular/js/angular.min.js: {}
        /libraries/angular/js/angular-sanitize.min.js: {}
        js/my-module.js: {}
      dependencies:
        - core/jquery
    

    现在项目中的任何模块都可以引用相同的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-14
      • 1970-01-01
      • 2015-02-21
      • 1970-01-01
      • 2015-08-03
      • 2020-05-06
      • 1970-01-01
      相关资源
      最近更新 更多