生产环境安装了require-dev依赖是因为缺少--no-dev参数。执行composer install时默认会安装全部依赖,包括开发工具;部署时应使用composer install --no-dev --optimize-autoloader命令,并在CI/CD脚本中明确指定该参数,避免将phpunit等开发包部署到线上,同时禁止运行composer update,确保基于composer.lock进行可预测的依赖安装。

如果你发现 require-dev 依赖在生产环境也被安装了,很可能是因为你运行 composer install 时没有正确使用 --no-dev 参数,或者 CI/CD 部署流程中缺少这个关键配置。
当你执行:
composer installComposer 会读取 composer.lock 文件并安装 全部依赖,包括 "require" 和 "require-dev" 中的内容。这在本地开发时是正常的,但在生产环境就可能导致问题。
在部署到生产环境时,你应该明确告诉 Composer 不要安装开发依赖:
composer install --no-dev --optimize-autoloader很多自动化部署流程(如 GitHub Actions、GitLab CI、Jenkins、Capistrano 等)如果没特别指定 --no-dev,就会默认安装所有依赖。请检查你的部署脚本,确保生产构建命令类似:
尤其是 Laravel、Symfony 等框架项目,生产环境不需要测试工具或代码分析组件。
有时候开发者误在生产服务器上运行了 composer update 或本地的 install 命令,导致 dev 包被装上。建议:
composer install(基于 lock 文件)composer update
COMPOSER_ENV=production 环境变量配合脚本判断(部分项目支持)基本上就这些。只要记住:生产环境部署一定要加 --no-dev,否则 Composer 默认啥都装。不复杂但容易忽略。
以上就是为什么我的 require-dev 依赖在生产环境也被安装了?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号