【问题标题】:How do I deal with outdated/unmaintained dependencies that I could maintain locally on my own?如何处理我可以自己在本地维护的过时/未维护的依赖项?
【发布时间】:2017-03-02 23:55:36
【问题描述】:

我有一个 Laravel 5.3 项目,我正在升级到 Laravel 5.4,由于 Laravel 的一些变化,有一些依赖项需要更新。除了一个之外,每个依赖项都有更新,我可以安全地切换到。

检查 github 我发现其他人有同样的问题,以及如何解决问题的简单解决方案。但是,由于未知原因,依赖项的开发人员表示他们将不再支持它并认为它已弃用。有解决问题的拉取请求,但没有人可以接受这些请求。

我可以做的是导航到我的供应商文件夹并自己进行更改,但我知道这不是正确的做法,因为更改最终会被覆盖,我们又回到了原点。

如果我可以自行解决或在其他分享解决方案的人的帮助下解决问题,我该如何处理过时/未维护的依赖关系?

1) 我可以从供应商处复制文件并尝试将第三方文件集成到我的项目中。

2) 我可以 fork 存储库并进行所需的更改,然后将我的 fork 版本添加到 packagist(感觉不对)或将我的 fork git 作为存储库添加到 composer.json 文件中。

我愿意接受其他想法,谢谢!

【问题讨论】:

    标签: composer-php dependency-management


    【解决方案1】:

    我将添加我现在解决它的方式。如果有人有更好的答案,我很乐意接受。

    在我的例子中,有问题的存储库是一个我可以 fork 的 Github 存储库。然后我可以克隆存储库并进行任何需要的更改。假设以下是我的 composer.json 文件中的内容。

    "require": {
        "someoneelse/project": "^1.0"
    }
    

    在我的 composer.json 文件中,我找到了依赖项的“someoneelse/project”,并将当前版本要求“^1.0”更改为“dev-master”。这将从 master 分支中提取最新的提交,并将 minimum-stability 设置为 dev。

    然后我将我的存储库添加到 composer.json。你可以这样做

    "repositories": [
        {
            "type": "git",
            "url": "https://github.com/markustenghamn/project.git"
        }
    ],
    "require": {
        "someoneelse/project": "dev-master"
    }
    

    运行 composer update 现在将从我的分叉存储库中获取最新版本。如果有人决定重新开始这个项目,我总是可以把它改回来。该依赖项可能需要派生项目 composer.json 文件中的其他依赖项,如果需要,请记住更新这些。

    【讨论】:

      猜你喜欢
      • 2014-01-11
      • 2018-08-14
      • 2021-09-24
      • 2017-08-20
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      • 2014-10-26
      相关资源
      最近更新 更多