Drupal 8使用相同外部JS Lib的多个自定义模块(例如Angular)

时间:2016-07-27 13:59:44

标签: javascript angularjs drupal-8

我被带到了一个Drupal 8项目,该项目包含多个需要使用Angular.js的自定义模块。为每个模块提供Angular文件的最佳方法是什么?

目前,每个模块都引用了$db = new Capsule; $db->addConnection([ 'driver' => 'mysql', 'host' => '127.0.0.1', 'database' => 'test', 'username' => 'test', 'password' => 'test@123#', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ], "default"); $db->addConnection([ 'driver' => 'mongodb', 'host' => '127.0.0.1', 'port' => 27017, 'database' => 'test', 'username' => null, 'password' => null, 'options' => [] ], "mongodb"); $db->getDatabaseManager()->extend('mongodb', function ($config) { return new Connection($config); }); $db->setEventDispatcher(new Dispatcher(new Container)); $db->setAsGlobal(); $db->bootEloquent(); 中googleapis.com托管的远程Angular文件。

my-module.libraries.yml

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

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

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

1 个答案:

答案 0 :(得分:0)

解决此问题的最简单方法是在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

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

相关问题