如何解决作为依赖项的依赖项而删除的 Packagist 包?

问题描述 投票:0回答:2

我们的 PHP 应用程序有一个 Packagist 依赖项

aaa/foo
在我们的composer.json 文件中定义。

此包依赖于已删除的 Packagist 包,我们称其为:

bbb/bar

这打破了我们的

composer install

我有一个从旧安装中删除的软件包 (

bbb/bar
) 的副本。解决此问题的最简单方法是什么
aaa/foo
尚未更新?

我希望有一种方法可以将丢失的包的源代码复制到代码库的

lib
目录中的目录并将其映射到
composer.json
...但我不认为
aaa/foo
会识别覆盖。

php composer-php
2个回答
0
投票

如果您有已删除的

bbb/bar
包,请将其放在本地文件夹中。

在下载并本地放置的

bbb/bar
包的composer.json文件中,设置需要的版本号:

{
    "name": "bbb/bar",
    "description": "...",
    "type": "library",
    "version": "1.2.3", // Here
}

然后,在您使用

aaa/foo
的项目中,引用您的本地包,以便可以将其作为“依赖项”安装:

"repositories": [
    {
        "type": "path",
        "url": "./lib/bbb-bar"
    }
],
"require": {
    "aaa/foo": "^1.0",
    "bbb/bar": "1.2.3"
}

0
投票

我会尝试以下方法:

  • 将代码从
    bbb/bar
    放入应用程序中的任何本地
    lib
    文件夹
  • 将正确的自动加载器添加到您的应用程序中
    composer.json
    ,以便在需要导入时找到包中的代码
  • bbb/bar
    添加到
    replace
    composer.json
  • 部分

可能需要调用

composer update bbb/bar
一次,以便将包从锁定文件中删除

© www.soinside.com 2019 - 2024. All rights reserved.