--no-dev 参数用于跳过开发依赖仅安装生产必需的包。在 composer.json 中,require 定义运行所需库,require-dev 列出开发测试工具。执行 composer install --no-dev 时,如 phpunit 等 dev 依赖不被安装,常用于生产环境以减小体积、提升安全性和加快部署速度。

在使用 Composer 安装或更新依赖时,--no-dev 参数的作用是跳过开发环境所需的依赖包,仅安装生产环境中必需的依赖。
什么是 dev 依赖?
- require:项目运行所必需的库,比如框架、数据库组件等
- require-dev:仅在开发或测试时需要的工具,比如 PHPUnit、PHPStan、PHP-CS-Fixer 等
当你执行 composer install 而不加任何参数时,默认会同时安装这两类依赖。
使用 --no-dev 的场景
在部署到生产环境时,通常不需要开发工具。使用 --no-dev 可以:
- 减少项目体积,节省服务器空间
- 提升安全性,避免暴露调试或测试工具
- 加快安装速度,减少不必要的依赖处理
例如,在上线部署脚本中常见这样的命令:
composer install --no-dev --optimize-autoloader
实际效果示例
假设你的 composer.json 包含:
{
"require": {
"monolog/monolog": "^2.0"
},
"require-dev": {
"phpunit/phpunit": "^9.0"
}
}
执行 composer install --no-dev 后,只会安装 monolog,而不会安装 phpunit。
基本上就这些。简单来说,--no-dev 就是在正式环境中“只装必要的”,避免带上开发期的额外工具。










