用 Composer 来管理 Drupal 前端相关的函数库

在Lightning 2.1.7中,我们终于回答了一个长期存在的问题:如果我使用Composer管理我的代码库,我如何将前端JavaScript库引入我的站点?

这一直是一个棘手的问题。drupal.org并没有真正提供官方解决方案 – 需要JavaScript库的模块通常包含自己下载和提取所述库的说明。在某些情况下,库API可以提供帮助; 分发允许运送某些库。但是,如果您使用Composer构建站点,那么您或多或少都是靠自己构建的。

现在,Lightning团队决定增加对Asset Packagist的支持。这个有用的存储库充当了Composer与流行的NPM和Bower存储库之间的桥梁,这些存储库存储了数千个有用的前端和JavaScript包。在Composer项目中启用Asset Packagist后,您可以像这样安装Bower包(以Dropzone为例):

$ composer require bower-asset/dropzone

您可以轻松安装NPM包:

$ composer需要npm-asset / dropzone

要在项目中使用Asset Packagist,请将以下内容合并到composer.json中:

普雷斯托!您现在可以将Bower和NPM包添加到项目中,就像它们是普通的PHP包一样。好极了!然而…

通常,资产包将安装在供应商目录中,与任何其他Composer包一样。这可能不是你想要用前端JavaScript库做的事情 – 幸运的是,有一个特殊的插件可以用来在正确的位置安装库。请注意,您需要使用Composer 1.5(最近发布)或更高版本才能使用它; 运行composer self-update如果您使用的作曲家的旧版本。

现在,将插件添加为依赖项:

$ composer需要oomphinc / composer-installers-extender

然后将以下内容合并到composer.json中:

"extra": {
  "installer-types": [
    "bower-asset",
    "npm-asset"
  ],
  "installer-paths": {
    "path/to/docroot/libraries/{$name}": [
      "type:bower-asset",
      "type:npm-asset"
    ]
  }
}

现在,当您安装Bower或NPM软件包时,它将被放置在   docroot / libraries / NAME_OF_PACKAGE中。嘘 – 呀!

让我们面对现实吧 – 如果您使用Composer来管理您的Drupal代码库,并且您想要添加一些JavaScript库,那么Asset Packagist就会围绕这个块进行攻击。

但!请注意,这 – 将前端库添加到基于浏览器的应用程序 – 实际上是Asset Packagist适合的唯一用例。如果您正在为Node编写JavaScript应用程序,则应使用NPM或Yarn,而不是Composer!Asset Packagist并不意味着取代NPM或Bower,它不一定以与它们相同的方式解决依赖关系。所以明智地使用这种力量!

PS Lightning 2.1.7包含一个脚本,可以帮助您设置项目的composer.json以使用Asset Packagist。要运行此脚本,请切换到Lightning配置文件目录并运行:

$ composer run enable-asset-packagist

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注