nix-community/composer-local-repo-plugin

一个为Composer提供的插件,用于创建本地Composer仓库。

资助包维护!
drupol

安装: 15

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 0

开放问题: 0

类型:composer-plugin

1.1.0 2024-03-05 12:27 UTC

This package is not auto-updated.

Last update: 2024-09-16 16:59:17 UTC


README

此插件是为Composer构建的,它简化了从现有包创建本地composer类型仓库的过程(参考文档)。基本上,这个插件允许您在“离线”模式下使用Composer。

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

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

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

该项目受到了fossar/composition-c4Jan Tojnar的强烈启发。

要求

  • Composer 2

安装

全局安装插件一次

composer global require nix-community/composer-local-repo-plugin

用法

使用更新的composer.lock文件(推荐)

  1. 导航到包目录,或使用--working-dir选项。
  2. 确保存在composer.jsoncomposer.lock文件。
  3. 使用以下命令生成本地仓库:composer build-local-repo-lock /path/to/local/repository。这将创建指定目录中的本地composer仓库,并在同一位置生成更新的文件composer.lock。使用-r-m选项仅生成仓库或composer.lock,分别。有关更多详细信息,请参阅命令帮助:composer build-local-repo-lock --help
  4. 包源和刚刚创建的本地仓库的组合现在足够严格,可以构建工作所需的vendor目录。因此,在这个阶段,我们可以禁用网络访问,因为不再需要进一步的网络访问,或者您可以使用环境变量COMPOSER_DISABLE_NETWORK设置为1来这样做。
  5. 将更新的composer.lock文件复制到包目录:cp /path/to/local/reposity/composer.lock .
  6. 最后,通过输入命令:composer install安装包。

使用Composer仓库类型(自Composer 2.7以来已弃用)

注意:由于Composer 2.7,此方法已弃用,因为它不再起作用。更多信息请参阅composer/composer#11850

  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。