我们已经开始使用Satis作为私有的composer存储库。
一切都进行得很顺利--除了一些我们无法弄清楚的事情。
--
当我们运行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,它可以工作。
如果composer.lock中有一个source字段,这是composer的自然行为吗?-如果是这样,satis是否有可能不生成源对象,因此它会自动转到dist键?
谢谢
发布于 2018-03-17 03:00:11
我不确定您是否可以从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"
}
}
}https://stackoverflow.com/questions/49325166
复制相似问题