我正在建立一个新系统以进行持续集成和交付。
由于PEAR即将为大多数软件包(如phpunit)提供EOL,我转而使用作曲家,这似乎是一个好主意,因为我需要它用于项目。
所以为了测试我的集成服务器,我开始使用一个非常简单的composer.json:
{
"require-dev": {
"phpunit/phpunit": "4.1.*",
"phpmd/phpmd" : "2.0.*",
"pdepend/pdepend" : "2.0.0",
"zerkalica/php-code-browser": "dev-master",
"squizlabs/php_codesniffer": "1.*",
"sebastian/phpcpd": "*",
"phpdocumentor/phpdocumentor": "dev-master"
}
}
这会导致 230MB供应商目录。
有关已安装的软件包的完整列表,请参阅: https://gist.github.com/rufinus/14b271f61e143364452f
这是预期的结果吗?
我应该切换到PHAR文件并将它们存储在项目内的bin目录中吗?
最佳做法是什么? (没有梨)
答案 0 :(得分:1)
您可以配置composer来下载每个包而不是克隆它。这样可以节省一些空间和时间。
{
"require-dev": {
"phpunit/phpunit": "4.1.*",
"phpmd/phpmd" : "2.0.*",
"pdepend/pdepend" : "2.0.0",
"zerkalica/php-code-browser": "dev-master",
"squizlabs/php_codesniffer": "1.*",
"sebastian/phpcpd": "*",
"phpdocumentor/phpdocumentor": "dev-master"
},
"config": {
"preferred-install": "dist"
}
}
要进行测试,请移除vendor
,composer.lock
并再次运行composer install
。现在它应该下载每个包,而不是克隆它。
作为旁注。尝试使用特定版本而不是“*”或“dev-master”。例如phpcpd我肯定知道它经常被标记。