composer.json中的require和require-dev有什么不同

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

composer.json中的require和require-dev有什么不同

requirerequire-dev 是 composer.json 中用来管理项目依赖的两个关键字段,它们的主要区别在于依赖的用途和部署环境。

require:生产环境依赖

这个字段列出的是项目在运行时必须存在的依赖包。这些库在开发、测试和线上环境都需要被安装。

例如:
  • 框架(如 Lar*el、Symfony)
  • 数据库 ORM(如 Doctrine)
  • HTTP 客户端(如 Guzzle)

执行 composer install 时,这些包一定会被安装。

require-dev:开发环境依赖

这个字段包含的是仅在开发或测试阶段使用的工具,不会在生产环境中加载。

美图云修 美图云修

商业级AI影像处理工具

美图云修 61 查看详情 美图云修 常见类型包括:
  • 测试工具(如 phpunit/phpunit)
  • 代码规范检查(如 phpstan/phpstan、friendsofphp/php-cs-fixer)
  • 调试工具(如 psy/psysh)

这些包只在你本地或 CI/CD 环境中需要,上线时可以省略。

部署时的区别

使用以下命令可以控制是否安装 dev 依赖:

  • composer install —— 安装 require 和 require-dev 中的所有包(适合本地开发)
  • composer install --no-dev —— 只安装 require 中的包(推荐用于生产环境)

这能减小生产环境的体积,提升安全性,避免不必要的依赖暴露。

基本上就这些。合理区分这两个字段,能让项目更清晰、部署更高效。

以上就是composer.json中的require和require-dev有什么不同的详细内容,更多请关注php中文网其它相关文章!

本文转自网络,如有侵权请联系客服删除。