require-dev 是 Composer 中定义开发依赖的字段,用于指定仅在开发阶段需要的工具,如 PHPUnit、PHP-CS-Fixer 等;这些依赖不会在生产环境安装。与之对应的 require 字段则包含项目运行所必需的依赖,如框架或数据库组件。通过 composer require --dev 可将包添加到 require-dev,而部署时使用 composer install --no-dev 可跳过开发依赖,提升安全性和效率。

require-dev 是 Composer 中用于定义开发依赖的配置项。它列出的包只在开发阶段需要,不会在生产环境中安装。
什么是 require-dev?
当你开发一个 PHP 项目时,有些工具只在本地调试、测试或构建时使用,比如 PHPUnit、PHPStan、PHP-CS-Fixer 等。这些工具不需要部署到线上服务器。Composer 提供了 require-dev 字段,专门用来管理这类“仅开发所需”的依赖。
与之对应的是 require,它列出的是项目运行所必需的依赖,比如框架、数据库组件等,这些会在生产环境安装。
怎么用 require-dev?
{
"require": {
"monolog/monolog": "^2.0"
},
"require-dev": {
"phpunit/phpunit": "^9.0",
"friendsofphp/php-cs-fixer": "^3.0"
}
}
- monolog/monolog 是正式依赖,必须上线
- phpunit 和 php-cs-fixer 只在本地写测试和格式化代码时用
添加开发依赖的命令:
composer require --dev phpunit/phpunit
加上 --dev 参数就会自动写入 require-dev 字段。
生产环境会安装 require-dev 吗?
默认情况下,运行 composer install 时会安装所有依赖。但在生产环境,你应该使用:
composer install --no-dev
这个命令会跳过 require-dev 中的所有包,节省空间并提升安全性。
另外,执行 composer update 时也会处理 require-dev 的包,方便你更新本地开发工具。










