我有一个composer.json
需要twig
:
"require": {
"twig/twig": "~1.0",
...
}
此twig包安装名为doc
的文件夹。
基本上,我的vendor
文件夹太大了,特别是因为我用它分发我的项目(它是一个WordPress插件)。
有没有办法告诉作曲家只包括“缩小”或至少最少量的文件,而不是文档,测试等等?
答案 0 :(得分:5)
您不能,因为您(作为依赖客户端)没有资格决定您的依赖关系应如何行动。由他决定!只需提交没有依赖文件的项目,而不是包含composer.json。
之前已经提出过这个问题,每次都回答否或类似于它。
以下是一些例子:
How to install specific files from a package using composer.json
How to config composer.json to retrieve specified files only?
似乎只有一种方式某种方式类似于你需要的方式。
有一个选项可以让作曲家友好的项目开发人员可以使用或不使用,而.gitattributes
& .gitattributes
个文件。
在打包--prefer-dist模式期间,开发人员可以使用/docs export-ignore
/tests export-ignore
/.gitattributes export-ignore
/.gitignore export-ignore
/phpunit.xml export-ignore
文件忽略某些文件和文件夹。 ......这样:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
然后在提供依赖关系的同时,Packagist使用github中生成的这些.zip文件来引入--prefer-dist依赖关系,然后在下载后解压缩它们(比克隆快得多)。因此,如果开发人员通过在.gitattributes中列出它们来忽略测试,文档和其他逻辑上无关的文件,那么归档将不会包含它们,变得更轻,更轻。
这似乎是唯一的方法,这也不是基于代码客户决策和显然是面向生产者 - 开发人员的方法。
但毕竟,您可以在安装所需的依赖项时检查--prefer-dist,他们是否可以使用此选项&你可以得到更轻的版本。
答案 1 :(得分:0)
我不知道我是否理解你的问题。但是,如果您构建一个插件,则不提供供应商文件夹,而是在composer.json
文件和想要使用其供应商文件夹中的源插件下载的用户编写依赖项,作为您所需的依赖项。插入。
我不认为你可以“缩小”你的依赖。
答案 2 :(得分:0)
简单的anwser 你不能。
Composer安装包的方式是在包存储库中的composer.json中定义的。并且(包)作者决定应该包含什么。这就是这个想法。
作曲家的想法是你在没有供应商目录的情况下分发你的代码,而“客户端”应该在他身边运行作曲家安装。
供应商目录占用大量空间是正常的:/