当您使用作曲家install
或update
项目时,您可以告诉它使用--no-dev
标记跳过与开发相关的依赖项(测试,构建工具等)
composer.phar update --no-dev
如果没有此标志,composer将始终下载额外的依赖项。
有没有办法(以编程方式或其他方式)告诉编写者总是跳过开发依赖项?也就是说,是否存在与伪代码匹配的真实代码
//File: composer.json
//...
"no-dev":"true"
//...
答案 0 :(得分:19)
简而言之:不 - 不,但是。
Composer的默认安装模式是安装开发依赖项。
据我所知,只有CLI选项--no-dev
且没有配置选项。
可以在项目的composer.json中定义配置部分,请参阅https://getcomposer.org/doc/04-schema.md#config
但是,快速浏览一下源代码就会发现,没有配置指令。 https://github.com/composer/composer/blob/master/src/Composer/Config.php#L22
{
"config": {
"no-dev": "true"
}
}
+1这个想法。它可能是Config类的一个有用的补充。
答案 1 :(得分:3)
这真的很烦人,所以我最后写了一个简单的bash脚本,询问环境并运行正确的命令:
#! /bin/bash
read -p "Which environment use to deploy: (P)roduction (T)est (D)ev? (p/t/d): " -n 1 -r
echo
if [[ $REPLY =~ ^[^PpTtDd]$ ]]; then
echo "Incorrect environment";
exit 1;
fi
# tasks to run before composer install (svn up/git pull)
if [[ $REPLY =~ ^[Pp]$ ]]; then
composer install --prefer-dist --no-dev --classmap-authoritative
elif [[ $REPLY =~ ^[Tt]$ ]]; then
composer install --prefer-dist --classmap-authoritative
elif [[ $REPLY =~ ^[Dd]$ ]]; then
composer install
fi
# additional tasks after composer install (clear cache, migrations, etc.)
将其保存在项目的bin/deploy
中并添加了执行权限。所以我现在使用的是bin/deploy
而不是composer install
:
我还将其他常见任务放在那里(从VCS中获取更改,清除缓存,运行迁移等),因此我在部署期间甚至可以做更少的事情并记住:)。