使用 composer install --no-dev 只安装 require 中的正式依赖,跳过 require-dev 开发依赖,适用于生产环境以减小体积、提升安全性并加快安装速度。

使用 composer install --no-dev 选项的作用是:只安装项目所需的正式依赖(production dependencies),跳过开发期间使用的依赖包。
区分依赖类型
Composer 支持将依赖分为两类:
- require:项目运行所必需的库,比如框架、工具类等
- require-dev:仅在开发或测试时需要的工具,比如 PHPUnit、PHPStan、Mockery 等
当执行 composer install --no-dev 时,Composer 不会安装 require-dev 中列出的包。
适用场景
这个选项通常用在生产环境部署中,目的包括:
技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作
- 减少 vendor 目录体积,节省磁盘空间
- 提升安全性,避免不必要的开发工具暴露在生产服务器上
- 加快安装速度,因为要下载和处理的包更少
实际例子
假设你的 composer.json 包含:
"monolog/monolog": "^2.0"
},
"require-dev": {
"phpunit/phpunit": "^9.0"
}
运行 composer install --no-dev 后,只有 monolog 会被安装,phpunit 不会出现在 vendor/ 目录中。
基本上就这些。在上线部署脚本中,推荐加上 --no-dev 以保持生产环境干净。









