require用于生产环境的运行时依赖,如框架和数据库ORM;require-dev用于开发测试工具,如PHPUnit和PHPStan;执行composer install安装所有依赖,而composer install --no-dev仅安装require中的生产依赖,推荐用于生产环境以减小体积并提升安全性。

require 和 require-dev 是 composer.json 中用来管理项目依赖的两个关键字段,它们的主要区别在于依赖的用途和部署环境。
require:生产环境依赖
这个字段列出的是项目在运行时必须存在的依赖包。这些库在开发、测试和线上环境都需要被安装。
例如:- 框架(如 Laravel、Symfony)
- 数据库 ORM(如 Doctrine)
- HTTP 客户端(如 Guzzle)
执行 composer install 时,这些包一定会被安装。
require-dev:开发环境依赖
这个字段包含的是仅在开发或测试阶段使用的工具,不会在生产环境中加载。
常见类型包括:这些包只在你本地或 CI/CD 环境中需要,上线时可以省略。
部署时的区别
使用以下命令可以控制是否安装 dev 依赖:
-
composer install—— 安装 require 和 require-dev 中的所有包(适合本地开发) -
composer install --no-dev—— 只安装 require 中的包(推荐用于生产环境)
这能减小生产环境的体积,提升安全性,避免不必要的依赖暴露。
基本上就这些。合理区分这两个字段,能让项目更清晰、部署更高效。










