--with-dependencies 仅安装直接依赖及其子依赖,不包含开发依赖;2. --with-all-dependencies 还包括开发依赖,确保完整依赖树安装。

在使用 Composer 安装或更新包时,--with-dependencies 和 --with-all-dependencies 都用于确保依赖包也被处理,但它们的作用范围有所不同。
--with-dependencies
这个选项会安装或更新指定包所需的直接依赖和这些依赖的子依赖(即完整的依赖树),但有一个关键限制:它不会包含开发阶段的依赖(require-dev),除非这些依赖已经被当前项目或其他依赖引入。
适用场景:
- 你只想确保生产环境所需的依赖被正确安装
- 你在部署或构建生产环境时希望避免加载 dev 依赖
--with-all-dependencies
这个选项更彻底。它不仅包含所有常规依赖(require),还会把。也就是说,它会递归地处理整个依赖树中所有包的开发依赖。
注意:这并不意味着你项目的 require-dev 会被额外处理,而是指你所依赖的那些包各自的 require-dev 也会被拉取。
适用场景:
- 你在做本地开发,并且需要测试某个包的完整功能(包括其测试工具、插件等)
- 你正在调试一个第三方包,而它依赖某些 dev 包才能正常运行
composer install 就够了(前提是 composer.json 没有被 --no-dev 影响)。
基本上就这些区别:
--with-dependencies 管生产依赖的全链路,
--with-all-dependencies 连别人家的开发依赖也一起装。
根据你的使用场景选择即可,不复杂但容易忽略。










