testudio / drupal-libraries-installer
通过在composer.json文件中简单列出,安装Drupal库
Requires
- composer-plugin-api: ^1.0 | ^2.0
- composer/installers: ^1.1
This package is auto-updated.
Last update: 2024-09-28 03:21:15 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 releases”链接(其中
X
是某个数字)。您也可以通过将“/releases/”附加到存储库的主页URL来到达版本页面,例如,对于https://github.com/harvesthq/chosen
,您将转到https://github.com/harvesthq/chosen/releases/
。 -
确定您要使用的版本。除非模块指出特定的版本要求,否则您可能希望使用最新版本。
-
对于该版本,找到“Assets”部分。如果存储库提供了自己的分发ZIP文件,那么它将是列表中的第一个文件之一。如果是这样,您将首先尝试使用它,以防它包含存储库中直接不可用的预构建文件。否则,使用该版本的“Source code (zip)”链接。只需将所需链接的URL复制到您的
composer.json
文件中使用。
备选方法
如果库没有提供任何版本,您仍然可以将其以ZIP文件形式引用。缺点是每次您下载此ZIP文件时,其内容都可能根据存储库的状态而更改。没有保证项目不同的用户将具有库的确切相同版本。
-
单击存储库主页上的绿色
Clone or download
按钮。 -
将
Download ZIP
链接的URL复制到您的composer.json
文件中使用。
注意
- 目前只支持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获取,但无法直接使用npm将这些包安装到正确的/libraries/文件夹中。此外,模块通常会将外部库需求列为指向ZIP发行文件或GitHub仓库的链接,这使得使用此插件以这种方式引用和拉取这些依赖项变得更容易。
- 此插件仅作为解决模块和主题之间外部库依赖管理问题的短期解决方案。