--with-dependencies 安装指定包及其运行时依赖,包括直接和传递依赖,但不包含其 require-dev 中的开发依赖;--with-all-dependencies 则在此基础上额外安装被引入包的 require-dev 依赖,适用于需要完整测试环境的场景。

在使用 Composer 安装或更新包时,--with-dependencies 和 --with-all-dependencies 都用于确保依赖项也被处理,但它们的作用范围有所不同。
--with-dependencies
该选项会安装或更新指定包所需的直接依赖和其传递依赖,但仅限于当前项目已声明的依赖树中。它不会处理那些被标记为“开发依赖”(require-dev)的依赖项。
例如,你执行:
composer require foo/bar --with-dependenciesComposer 会安装 foo/bar,以及它在 require 中定义的依赖,但不会安装 foo/bar 的 require-dev 中的包。
--with-all-dependencies
这个选项更进一步。除了安装直接和传递的运行时依赖外,它还会包含被引入包的 require-dev 依赖。这意味着如果 foo/bar 在它的 require-dev 中定义了某些工具(如测试框架),这些也会被安装。
这在你开发一个可重用的包,并希望完整测试环境时很有用。
执行:
composer require foo/bar --with-all-dependencies会把 foo/bar 及其所有依赖,包括它的开发依赖,全部安装进来。
简单来说:
--with-dependencies 覆盖运行时依赖链,
--with-all-dependencies 还额外覆盖被引入包的 require-dev 依赖。
基本上就这些,根据你是否需要开发工具来决定用哪个。









