你什么时候用“;需要dev”;?常见的开发依赖关系是什么


When do you use "require-dev"? What are common dev dependencies?

虽然我熟悉composer.json的基本知识并在require键下指定依赖项,但我还不太了解require-dev的用途——Composer的文档状态:

需要dev(仅限root用户)

列出开发此程序包或运行测试所需的程序包,等等。根包的开发要求由违约安装或更新都支持--no dev选项阻止安装dev依赖项。

抽象地说,这是有道理的,但当我需要这个功能时,我很难想象会出现什么情况。

  1. require-dev在工作流中的实际用例是什么
  2. 是否有一个(或多个)示例包应位于require-dev中,但不应位于require

一个常见的例子是phpunit,您在开发中需要它来运行测试套件,但在生产中通常不需要它。它也可以是构建工具或类似的东西。不过,把所有东西都放在需求中并没有什么大的害处,这只是意味着你的prod机器上安装了更多的代码,并且可能会根据你的操作方式来放慢你的构建速度。