我有一个composer.json
需要twig
:
"require": {
"twig/twig": "~1.0",
...
}
此树枝软件包安装了一个名为doc
的文件夹。
基本上,我的vendor
文件夹变得太大了,尤其是因为我用它分发了项目(这是WordPress插件)。
是否有一种方法告诉作曲家仅包括"缩小"或至少数量的文件,而不是诸如文档,测试等之类的内容?
您不能,因为您(作为依赖性客户端)没有资格对做出决定的决定。取决于他!只需在没有依赖性文件的情况下提供您的项目,而是包含Composer.json。
以前曾问过这个问题,每次都带有与之相似的答案 no 或STH。
这里有一些例子:
如何使用composer.json
从软件包中安装特定文件如何配置Composer.json仅检索指定的文件?
更新## [exigantes!]
似乎只有一种方式与您需要的相似。
有一个选项可以使作曲家友好的项目开发人员可能或可能不会使用,这是--prefer-dist
&.gitattributes
文件。
开发人员可以使用.gitattributes
文件在包装期间忽略一些文件和文件夹,以获取 - 急速模式。这样的STH:
/docs export-ignore
/tests export-ignore
/.gitattributes export-ignore
/.gitignore export-ignore
/phpunit.xml export-ignore
然后在提供依赖项的同时,Packagist使用这些.zip文件在GitHub中制作的ZIP文件来拉动 - prefer-dist依赖关系,然后下载后的Unarchives(比克隆要快得多)。因此,如果开发人员忽略了测试,文档和其他逻辑上无关的文件来列出它们。
看来,这是唯一的方法,这再次不是基于代码 - 网状决策&显然是一种以生产者为导向的方法。
,但毕竟,您可以在安装所需的依赖性时检查 - 急需,他们可以使此选项可用&您可以获得更轻的版本。
我不知道我是否正确理解了您的问题。但是,如果您构建插件,则不提供供应商文件夹,而是在composer.json
文件中写下依赖项,以及想要使用插件下载的用户在其供应商文件夹中下载该源,作为插件所需的依赖性。
我不认为您可以"缩小"您的依赖项。
简单的anwser是您不能。
Composer安装软件包以包装库中的Composer.json中定义的方式。(包装)作者决定应该有什么。这就是这里的想法。
作曲家的想法是,您在没有供应商的情况下分发代码,"客户"应该在他的身边运行作曲家安装。
供应商dir有很多空间是正常的:/