Satis - 如何只包括" dist"下载

时间:2018-03-16 16:10:37

标签: composer-php packagist satis

我们已经开始使用Satis作为私人作曲家存储库。

一切进展顺利 - 除了我们无法弄清楚的事情。

-

当我们运行satisf build时,它会生成json和zips来下载。

我们的配置类似于

{
    "name": "Premium Repositories",
    "homepage": "https://some-website.com",
    "require-all": false,
    "repositories": [
        {
            "type": "vcs",
            "url": "git@bitbucket.org:our-repo.git"
        }
    ],
    "archive": {
        "directory": "dist"
    }
}

它生成的json包含类似

的内容
"some/package": {
    "dev-master": {
        "name": "some/package",
        "version": "dev-master",
        "version_normalized": "9999999-dev",
        "source": {
            "type": "git",
            "url": "git@bitbucket.org:selesti/some-package.git",
            "reference": "db0abb6a6983738d768b64684f82d178059b85b4"
        },
        "dist": {
            "type": "zip",
            "url": "https://some-domain/dist/some/package/some-package-dev-master-ec67bc.zip",
            "reference": "db0abb6a6983738d768b64684f82d178059b85b4",
            "shasum": "f04821a159f6f19ea6e5be8624d88f32b168e205"
        },
        "require": {
            "magento/framework": ">=100.0.0",
            "php": "~5.5.0|~5.6.0|>=7.0.0",
            "some/core": ">=3.0.0"
        },
        "time": "2018-02-16T09:00:56+00:00",
        "type": "magento2-module"
    }
}

我们可以从中清楚地看到它包含拉链和来源。

这似乎意味着当我们运行composer install时,它会首先尝试安装源版本 - 由于它没有读取权限而失败 - 然后它会回落到dist,这是有效的。

如果source中有composer.lock字段,这是作曲家的自然行为吗? - 如果是这样,是否可以满足不生成源对象,因此它会自动直接转到dist键?

由于

1 个答案:

答案 0 :(得分:0)

我不确定您是否可以从Satis输出中排除source repos,但作为替代方案,您可以告诉Composer默认使用dist repos,其配置类似于:

{
    "config": {
        "preferred-install": "dist"
    }
}

您还可以按照docs逐个包指定preferred-install配置:

{
    "config": {
        "preferred-install": {
            "my-organization/stable-package": "dist",
            "my-organization/*": "source",
            "partner-organization/*": "auto",
            "*": "dist"
        }
    }
}