Composer可以选择仅在开发过程中加载多个依赖项,因此这些工具将不会安装在生产环境中(在实时服务器上)。从理论上讲,这对于仅在开发中有意义的脚本非常方便,例如测试,伪数据工具,调试器等。
可行的方法是require-dev
使用开发中所需的工具添加一个附加块:
"require-dev": {
"codeception/codeception": "1.6.0.3"
}
然后(理论上)通过
composer install --dev
问题与疑问:
Composer改变了行为,install
并update
在2013年发生了巨大变化,require-dev
-dependencies现在已默认安装(!),可以随意创建一个带require-dev
块的composer.json 并执行一个composer install
重现。
作为最流行的部署方式,是推动作曲家。锁定(保存您当前的作曲家设置),然后composer install
在生产服务器上执行,这也会安装开发资料。
在不安装-dev依赖项的情况下进行部署的正确方法是什么?
注意:我正在尝试在此处创建规范的Q / A,以阐明怪异的Composer部署。随时编辑此问题。
composer.lock
不应该被添加到Git的回购,从来没有。正确的方法是在登台上使用composer update,然后将文件同步到生产环境中(当然,如果一切正常)。暂存必须是生产环境的精确副本。composer.lock
应该是的一部分.gitignore
。