使用 –no-dev 可排除开发依赖,composer install –no-dev –optimize-autoloader 能减小部署体积并提升性能,适用于生产环境、Docker 镜像及 CI/CD 流程。

在生产环境中使用 Composer 的 –no-dev 选项,是为了确保只安装项目运行所必需的依赖包,跳过开发阶段使用的工具(如测试框架、代码分析工具等)。这能减少部署体积、提升安全性,并避免不必要的组件进入生产环境。
理解 –no-dev 的作用
–no-dev 是 Composer 安装命令的一个参数,用于告诉 Composer 忽略 require-dev 中列出的依赖。这些依赖通常包括:
phpunit/phpunitfriendsofphp/php-cs-fixerphpstan/phpstanfakerphp/faker
它们对运行应用无直接帮助,仅用于本地开发或 CI/CD 流程。
在生产部署中正确使用 –no-dev
当你将代码部署到生产服务器时,应执行以下命令:
composer install –no-dev –optimize-autoloader
说明:
–no-dev:不安装 require-dev 中的包–optimize-autoloader(或 -o):优化类自动加载,提升性能
建议在构建流程或部署脚本中固定使用该组合命令。
Poify
快手推出的专注于电商领域的AI作图工具
189 查看详情
结合环境变量控制行为(可选)
Composer 会读取 COMPOSER_DEV_MODE 环境变量或检查 APP_ENV。你可以在生产环境中设置:
export APP_ENV=production
并在 composer.json 中配合脚本或 CI 配置,自动判断是否启用 –no-dev。
CI/CD 和构建镜像中的实践
如果你使用 Docker 或 CI 工具(如 GitHub Actions、GitLab CI),应在生产构建阶段明确使用 –no-dev:
# Dockerfile 示例片段
COPY . /app
RUN composer install –no-dev –optimize-autoloader –no-interaction
这样可以保证镜像轻量且不含开发工具。
基本上就这些。只要在生产环境部署时坚持使用 composer install –no-dev –optimize-autoloader,就能有效管理依赖范围和运行效率。
以上就是如何在生产环境中使用Composer –no-dev选项?的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/835676.html
微信扫一扫
支付宝扫一扫