作曲家 - 只安装一次?

时间:2015-04-17 22:36:37

标签: composer-php

有没有办法让Composer只安装一次包(类似于默认模板,其中每个项目将更改源)?所以包裹将包含在"要求"最初,但是在第一次运行composer install之后,它将被删除(通过命令行作为脚本的一部分,理想情况下)。

我看了composer remove,但似乎会删除我不想要的目录 - 我只是不想在.json或{{1}中找到它因此,如果有人要克隆存储库并运行.lock或甚至运行composer install,那么此程序包的目录将不会被覆盖。首次安装后它将独立。

在实践中:

  • 用户A:composer update,对包A的来源进行更改,不再由作曲家管理,创建git repo,忽略包BZ但追踪包A(实际上并非如此)一个包裹和更改。

  • 用户B:
    composer install
    软件包B-Z已经安装,软件包A(再次,不再是真正的软件包)是git存储库中的任何内容。

希望这很清楚。有人对此有什么想法吗?

提议的解决方案

  • 每次叉包
    • 令人沮丧,因为每次使用此作曲家安装时都必须发生这种情况
  • 固定版本号
    • 表示每次更新一个此类库时更新git clone git@bitbucket.org:usera/repository cd repository composer install,而不是一件大事
  • 首次安装后替换composer.json 如果dirname未更改,则无效
    • 可以通过脚本方便地完成,但意味着repo中的另一个文件

1 个答案:

答案 0 :(得分:0)

这是一种安全的方法:

  1. 在GitHub(是的,GitHub)中,将您想要更改的包转换为您自己的回购。
  2. 抓住您的回购网站的网址并将其添加到 composer.json repositories信息中:

    "repositories": [
        {
            "type": "git",
            "url": "https://github.com/your-user/your-forked-repo.git"
        }
    ],
    
  3. 正常需要原始包。 Composer将解析为您的分叉版本。

  4. 现在,您可以控制对包的更改。请记住在包的文件夹中提交。您的团队成员也将获得更新,将更改推送到GitHub并告诉他们运行composer update