drupol/composer-local-repo-plugin

一个为Composer提供的命令行工具,用于创建项目的本地Composer仓库。

资助包维护!
drupol

安装: 280

依赖者: 0

建议者: 0

安全: 0

星标: 1

关注者: 3

分支: 0

开放问题: 2

类型:composer-plugin

dev-main 2023-09-10 08:35 UTC

README

此插件是为Composer构建的,简化了从现有包创建本地composer类型仓库的过程(参考文档)。

仓库类型composerPackagist使用的格式相同。它使用特定的结构,包含名为packages.json的清单文件和独特的目录结构。仓库中的每个包版本都有对应的源代码。

该插件旨在以可重复的方式安装PHP包,创建仓库后无需网络访问。

该插件目前在Nix中使用。更多详细信息可以在相关PR中找到,标志着项目的开始。

此项目受到了Jan Tojnarfossar/composition-c4的强烈启发。

要求

  • Composer 2

安装

全局安装插件一次

composer global require loophp/composer-local-repo-plugin

使用

  1. 导航到包目录,或使用--working-dir选项。
  2. 确保存在composer.jsoncomposer.lock文件。
  3. 使用命令生成本地仓库:composer build-local-repo /path/to/local/repository。这将创建指定目录中的本地composer仓库,并在同一位置生成清单文件packages.json。使用-r-m选项仅生成仓库或清单文件。有关更多详细信息,请参阅命令帮助:composer build-local-repo --help
  4. 包源和刚刚创建的本地仓库的组合足以构建包工作所需的vendor目录。因此,在此阶段,我们可以禁用网络(不再需要网络访问),或者可以使用环境变量COMPOSER_DISABLE_NETWORK设置为1来禁用网络。
  5. 通过输入命令禁用Packagist:composer config repo.packagist false
  6. 使用命令将新创建的本地composer仓库集成到composer.json文件:composer config repo.local composer file:///path/to/local/reposity/packages.json
  7. 使用命令刷新锁文件:composer update --lock --no-install --no-scripts --no-plugins --no-interaction
  8. 最后,通过输入命令安装包:composer install

在Nix中

该插件用于在Nix中构建基于Composer的PHP包。源包和此插件构建的本地仓库的组合是独特的,Nix使用它来确保可重复性。

注意

默认情况下,Composer会创建到包的符号链接,如果您想复制包,请将环境变量COMPOSER_MIRROR_PATH_REPOS设置为1