balbuf / drupal-libraries-installer
通过在您的composer.json文件中进行简单列表安装Drupal库
Requires
- composer-plugin-api: ^1.0
- composer/installers: ^1.1
This package is auto-updated.
Last update: 2024-09-07 15:28:14 UTC
README
Drupal Libraries Installer是一个composer插件,允许轻松管理Drupal模块/主题所需的外部库,这些库无法作为composer包提供。此插件是管理Drupal站点的所有外部依赖项的另一个解决方案:在单个位置,即composer.json
文件中。
使用方法
-
将Drupal Libraries Installer添加到您的Drupal站点项目中
composer require balbuf/drupal-libraries-installer
-
通过在
extra
中的drupal-libraries
属性中添加库到您的composer.json
文件。使用库的名称作为键,将其分发的ZIP文件URL作为值来指定库{ "extra": { "drupal-libraries": { "flexslider": "https://github.com/woocommerce/FlexSlider/archive/2.6.4.zip", "chosen": "https://github.com/harvesthq/chosen/releases/download/v1.8.2/chosen_v1.8.2.zip" } } }
下面是如何找到GitHub仓库的ZIP URL的说明。
-
确保类型为
drupal-library
的composer包配置为安装到正确的路径。默认情况下,composer/installers
(此插件的依赖项,可能已包含在您的项目中)将这些包安装到您的仓库根目录下的/libraries/{$name}/
。您可能希望通过composer.json
中的installer-paths
属性(在extra
中)来更改此设置{ "extra": { "installer-paths": { "web/libraries/{$name}/": ["type:drupal-library"] } } }
有关
installer-paths
属性的更多信息,请参阅composer/installers
的README。 -
运行
composer install
。在运行composer install
或composer update
时,将下载并解压库。要升级库,只需在您的composer.json
文件中更换其URL,然后再次运行composer install
即可。
如何将GitHub仓库引用为ZIP文件
如果您被指示从GitHub仓库下载库,请按照以下说明查找代码库的ZIP文件版本链接
首选方法
最好引用库的特定版本,以确保每次每个项目用户都下载相同的代码版本。要查看可用的版本
-
单击GitHub仓库主页顶部附近的“X个版本”链接(其中X是某个数字)。您也可以通过将“/releases/”附加到仓库主页URL来访问版本页面,例如,对于
https://github.com/harvesthq/chosen
,您将转到https://github.com/harvesthq/chosen/releases/
。 -
识别您想使用的版本。除非模块注明了特定的版本要求,否则您可能想使用最新版本。
-
对于该版本,找到“资产”部分。如果仓库提供了自己的分发ZIP文件,它将是列表中的第一个文件之一。如果是这样,您将希望首先尝试使用它,以防它包含在仓库中不可直接获得的预构建文件。否则,使用该版本的“源代码(zip)”链接。只需复制要用于您的
composer.json
文件的所需链接的URL。
备选方法
如果库不提供任何版本,您仍然可以将其以ZIP文件的形式引用。缺点是每次下载此ZIP时,其内容都可能根据仓库的状态而更改。无法保证项目用户将具有库的相同版本。
-
单击仓库主页上的绿色“克隆或下载”按钮。
-
复制用于您的
composer.json
文件的“下载ZIP”链接的URL。
注意
- 目前仅支持ZIP文件。
- 此插件旨在与根包一起使用(即Drupal站点仓库)并且不会在依赖项的
composer.json
文件中查找库(例如,贡献模块)。 - 此插件本质上是一个快捷方式,用于明确声明项目中需要包含的每个库zip文件的composer包信息,例如:
{ "repositories": [ { "type": "package", "package": { "name": "harvesthq/chosen", "version": "1.8.2", "type": "drupal-library", "dist": { "url": "https://github.com/harvesthq/chosen/releases/download/v1.8.2/chosen_v1.8.2.zip", "type": "zip" } } } ], "require": { "harvesthq/chosen": "1.8.2" } }
虽然这种方法完全可行,并且不需要额外的插件即可直接使用,但它也很繁琐,不太友好,而且相当冗长,给您的composer.json
文件增加了许多额外的噪声。 - 库是在实际composer包安装之后安装的,并且不受composer固有的依赖解决算法的影响。这意味着不能指定兼容版本的范围(相反,必须选择库的特定版本的分发文件),并且如果库有其他额外的库依赖项,这些依赖项必须显式地添加到列表中。
- 由于库是在composer包之后安装的,因此可能会发生安装路径冲突,导致此插件安装的库覆盖composer包。
- 尽管许多库是基于JS和/或CSS的,并通过npm提供,但没有方法可以直接将这些包安装到正确的/libraries/文件夹中。此外,模块通常将它们的外部库需求列为例表到ZIP分发文件或GitHub存储库的链接,这使得使用此插件以这种方式引用和拉取这些依赖项变得更加容易。
- 此插件仅作为模块和主题之间外部库依赖项管理更广泛问题的短期解决方案。