使用 composer install --no-dev 可避免部署开发依赖,减小体积、提升性能、降低安全风险,并确保生产环境轻量、稳定、安全。

在生产服务器上使用 composer install --no-dev 是一项最佳实践,主要原因是为了确保生产环境的安全性、稳定性和性能。
避免安装不必要的开发依赖
Composer 的 require-dev 字段中列出的包(如测试工具、代码分析器、调试工具等)仅用于开发和测试阶段。这些包在生产环境中没有实际用途。
- 例如:phpunit/phpunit、psy/psysh、fabpot/php-cs-fixer 等只应在本地或 CI 环境中使用。
- 使用 --no-dev 可防止这些工具被部署到线上服务器,减少潜在攻击面。
减小部署体积和提升部署速度
排除 dev 依赖后,下载和安装的文件数量显著减少。
- 更少的文件意味着更小的构建产物,节省磁盘空间。
- 在 CI/CD 流程中,能加快部署过程,尤其对容器镜像构建有明显优化效果。
降低安全风险
开发工具可能包含敏感功能或已知漏洞。
- 比如某些调试工具允许执行任意 PHP 代码,一旦暴露可能导致远程代码执行。
- 不安装它们,就从根本上避免了因这些组件引发的安全问题。
保持环境一致性与明确职责分离
生产环境应只包含运行应用所必需的代码。
- 这有助于团队明确区分开发与生产职责。
- 也便于审计和合规检查,清楚知道线上系统有哪些依赖。
基本上就这些。简单一条命令,带来的是更安全、更轻量、更可靠的生产环境。










