使用 --working-dir 参数可指定 Composer 命令执行目录,适用于多项目管理或自动化场景。例如在根目录运行 composer install -d api 安装子项目依赖,或在 CI/CD 脚本中通过 --working-dir 明确路径,支持相对与绝对路径,命令执行时会在目标目录查找 composer.json 并生成 vendor 文件夹,但不改变终端当前路径。

当你想让 Composer 在指定目录下执行命令,而不是当前工作目录时,就可以使用 --working-dir(或简写为 -d)参数。这个参数非常实用,尤其在自动化脚本或项目结构较复杂的情况下。
基本用法
使用 --working-dir 可以指定 Composer 应该操作的目标目录。Composer 会切换到该目录,并在此目录中查找composer.json 文件并执行相应操作。
语法:composer install --working-dir=/path/to/project
或简写:composer install -d /path/to/project
常见使用场景
以下是一些实际中常见的使用方式:-
在父目录运行子项目的 Composer 命令
比如你的项目结构如下:/my-project/ ├── composer.json └── api/ └── composer.json如果你在根目录,想安装api/中的依赖,可以运行:composer install -d api -
CI/CD 脚本中明确指定路径
在持续集成环境中,你可能需要在特定目录执行命令,避免依赖当前路径:composer update --working-dir=./packages/microservice -
批量处理多个 Composer 项目
写一个脚本遍历多个子项目并安装依赖:for dir in */; do composer install -d "$dir" done
注意事项
使用 -d 参数时要注意几点:- 指定的目录必须存在且包含
composer.json文件,否则会报错。 - 所有文件操作(如自动加载生成、vendor 目录创建)都会发生在目标目录中。
- 相对路径和绝对路径都支持,例如:
-d ../another-project或-d /var/www/html。 - 不会改变你终端当前所在的目录,只是 Composer 内部切换了工作路径。










