16

我们有自己的 Satis 存储库,我们可以在那里存储我们自己的依赖项。这工作正常。

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

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

我们想知道的是,Satis 是否有可能从 Packagist 下载一个包,如果它在本地还没有,然后将其存储并自动添加到 Satis 自己的存储库中。

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

4

2 回答 2

15

Satis 现在支持这一点。

只需按照Satis 设置说明并将以下内容添加到您的配置文件(默认名为 satis.json)。更新 prefix-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 文件中禁用 Packagist 存储库,以强制所有依赖项都来自您的 Satis 存储库。为此,请添加:

{
    "repositories": [
        {
            "packagist": false
        }
    ]
}

到您项目的 composer.json。

于 2013-07-26T19:38:44.883 回答
6

您现在可以使用代理来实现这一点。很可能会添加此功能以满足其自身的需求。

于 2012-08-09T16:16:46.240 回答