0

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

一切都很顺利——除了我们无法弄清楚的事情。

--

当我们运行 satis 构建时 - 它会生成 json 和要下载的 zip。

我们的配置类似于

{
    "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"
    }
}

从这里我们可以清楚地看到它包含 zip 和源。

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

如果 中有一个source字段,这是作曲家的自然行为composer.lock吗?- 如果是这样,satis 是否有可能不生成源对象,所以它会自动直接进入dist密钥?

谢谢

4

1 回答 1

0

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

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

您还可以根据文档preferred-install逐个包地指定配置:

{
    "config": {
        "preferred-install": {
            "my-organization/stable-package": "dist",
            "my-organization/*": "source",
            "partner-organization/*": "auto",
            "*": "dist"
        }
    }
}
于 2018-03-16T19:00:10.810 回答