我被带到了一个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的每个模块中引用它们。
答案 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
现在项目中的任何模块都可以引用相同的文件。