需求和需求开发之间有什么区别?
我是新手,我想知道 和 之间的区别。作曲家网站没有很好地解释这两者之间的区别。composer
require
require-dev
我没有得到的部分来自作曲家官方文档。Lists packages required for developing this package, or running tests, etc.
我是新手,我想知道 和 之间的区别。作曲家网站没有很好地解释这两者之间的区别。composer
require
require-dev
我没有得到的部分来自作曲家官方文档。Lists packages required for developing this package, or running tests, etc.
包是项目工作不需要的包,不应包含在项目的生产版本中。require-dev
通常,这些是仅在开发期间使用的包。phpunit/phpunit
关键的区别在于,Composer 只会安装“根包”(运行目录)的依赖项。文档将其描述为:require-dev
composer install
根包是由项目根目录的 定义的包。它是定义项目要求的主要内容。
composer.json
composer.json
...并且 require-dev
文档指定它是“仅根目录”。
在实践中,这意味着如果将包作为其他内容的依赖项安装(即它安装到另一个项目的文件夹中),则不会使用包的依赖项。require-dev
vendor
因此,如果您在YourProject列表中,并且我克隆了YourProject并在目录中运行,Composer将安装到,因为很可能我正在YourProject上进行一些开发。作为开发工作的一部分,我可能想要运行YourProject的测试套件,为此我需要。phpunit
require-dev
composer install
yourproject/
phpunit
yourproject/vendor/
phpunit
但是,如果我将YourProject添加为MyProject的依赖项,则安装软件包也会安装该软件包,但它不会安装phpunit
。myproject
yourproject
您可以使用 和 选项覆盖此行为,但默认行为基于相关包是否为根包。--dev
--no-dev