我有a PHP library我put up on packagist.org。我想从包中排除某些文件(例如几个JAR和我的测试),因此依赖于我的库的人不必下载它们。
我把以下内容放在我的composer.json中:
"archive": {
"exclude": ["/test", "composer.phar", "wiremock"]
}
但这似乎并未改变下载的依赖项的内容。
Composer是否支持我想要的功能?我的存档/排除配置有什么作用?
答案 0 :(得分:2)
据我所知,Composer不支持这一点。在您的方案中,下载的过程如下:除非您使用参数--prefer-source
,否则Composer会从Github下载.zip存档(对于您的库,这将是例如https://github.com/rowanhill/wiremock-php/archive/0.1.0.zip)。由于这个存档已经由github编写,包括你的所有文件,因此作曲家没有可行的方法不下载你的库的一部分。如果您使用--prefer-source
,则会检出相关标签,但仍然没有过滤器。
顺便说一下,作曲家会缓存档案下载,所以即使下载很大,它也只会发生一次。
我不确定存档/排除部分,但我的猜测是,这是用于在您下载后生成本地存档,例如:为了满意。