【问题标题】:Is there a way to retain certain files during a composer update or install?有没有办法在作曲家更新或安装期间保留某些文件?
【发布时间】:2015-03-16 14:02:21
【问题描述】:

我在我的 Laravel 应用程序中使用了一个不支持开箱即用的 Laravel 包,所以我自己添加了一个 Facade 和 Service Provider。这两个文件都被检入我的仓库(在 .gitignore 中使用 ! 前缀指定)。但是,当 composer 更新一个包时,它首先会完全删除它,这会阻止像 Codeship 这样的平台自动部署。

有什么建议吗?

【问题讨论】:

    标签: php git laravel laravel-4 composer-php


    【解决方案1】:

    您应该分叉该软件包,使用您的更改创建一个自定义 repo - 然后将其包含在您的 composer.json 中。

    {
        "repositories": [ {
                "type": "vcs",
                "url": "https://github.com/YourGithubUsername/PackageName"
             }
        }],
        "require": {
            "laravel/framework": "4.0.*",
            "OriginalVendor/PackageName": "1.0.*"
        },
    }
    

    这样您就可以随时提取自定义更改,而无需将其提交到您的特定项目。

    您可以在此处阅读有关分叉和加载包的更多信息:https://getcomposer.org/doc/05-repositories.md#vcs

    【讨论】:

      【解决方案2】:

      永远不要更改包的代码!事实上,永远不要碰vendor 目录。

      您应该 [fork] 存储库并添加您的代码(请参阅@TheShiftExchange 的回答)

      或者在你的命名空间中添加 Facade 和 ServiceProvider。

      【讨论】:

      • 谢谢,我已经采取了 fork 的方法并将 .gitignore 改回来了。
      猜你喜欢
      • 1970-01-01
      • 2020-06-13
      • 2016-01-08
      • 1970-01-01
      • 2017-11-29
      • 2021-03-08
      • 1970-01-01
      • 2019-02-28
      • 2018-10-03
      相关资源
      最近更新 更多