我们有自己的Satis存储库,我们可以在其中存储我们自己的依赖项。这很好。

但是,如果开发人员使用的软件包不在我们自己的存储库中,则Composer将通过packagist.org从GitHub获取该软件包(作为备用)。

但是我们不想依赖packagist.org。所有依赖项都应从我们自己的存储库中下载。

我们想知道的是,如果Satis可能从Packagist下载软件包,如果它在本地尚不可用,然后将其存储并自动添加到Satis自己的存储库中。

这样,我们不必手动将依赖项添加到Satis存储库中。

最佳答案

现在,Satis支持这一点。

只需按照Satis setup instructions并将以下内容添加到您的配置文件中即可(默认情况下名为satis.json)。更新前缀URL,并根据需要进行更新。

{
    "repositories": [
        { "type": "composer", "url": "https://packagist.org" }
    ],
    "require-dependencies": true,
    "require": {
        {{your application dependencies from composer.json}}
    },
    "archive": {
        "directory": "dist",
        "prefix-url": "{{your server}}",
        "skip-dev": true
    }
}

然后,您可以像平常一样创建Satis存储库:
php bin/satis build <configuration file> <build dir>

现在,您的Satis存储库将满足您应用程序的所有依赖关系。

注意:第一次运行可能需要一段时间。随后的运行要快得多。另外,请注意Satis将/tmp用于其缓存。在其中/tmp由tmpfs支持的小型内存系统上,如果具有较大的依赖关系树,则可能需要增加/tmp可用的空间。

您可能还希望在项目的composer.json文件中disable the Packagist repository强制所有依赖项都来自Satis存储库。为此,请添加:
{
    "repositories": [
        {
            "packagist": false
        }
    ]
}

到项目的composer.json。

关于php - 我可以使用自己的Composer Satis安装同步或镜像packagist.org的依赖项吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11759347/

10-13 08:47