使用 --no-dev 选项可跳过开发依赖,仅安装生产环境必需的依赖;它减少 vendor 目录体积、提升部署速度并降低安全风险,适用于线上部署场景。

当你使用 Composer 安装或更新依赖时,--no-dev 选项的作用是跳过 开发环境专用的依赖包,只安装生产环境中必需的依赖。
只安装 production 依赖
Composer 的 composer.json 文件中通常有两个依赖列表:
- require:项目运行所必需的依赖(如框架、数据库组件等)
- require-dev:仅在开发或测试时需要的工具(如 PHPUnit、PHPStan、faker 等)
使用 --no-dev 时,Composer 只会安装 require 中的包,忽略 require-dev 中的所有内容。
适用于生产环境部署
在将代码部署到生产服务器时,你通常不需要开发工具。使用 --no-dev 能:
技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作
- 减少 vendor 目录的大小
- 提升部署速度
- 降低潜在的安全风险(比如暴露了调试工具)
典型命令示例:
composer install --no-dev --optimize-autoloader
影响自动加载和脚本执行
启用 --no-dev 后,Composer 不会生成开发相关的自动加载条目,也不会执行 scripts 中标记为开发阶段的操作(如测试、静态分析等)。这意味着某些开发命令将无法使用,但这对线上环境是合理的限制。
基本上就这些。不复杂但容易忽略。上线时记得加上 --no-dev,避免不必要的依赖被安装。









