config.vendor-dir是唯一可靠方案,因Composer所有命令(install、update、require)均一致识别该字段,且仅当vendor目录不存在时强制启用;环境变量COMPOSER_VENDOR_DIR仅在composer.json未配置时fallback生效,-d参数不控制安装路径。

只能通过 config.vendor-dir 在 composer.json 中配置,删掉旧 vendor 后重装才生效;其他方式基本无效。
为什么 config.vendor-dir 是唯一可靠方案
Composer 所有命令(install、update、require)都一致识别这个字段,且它在 vendor 目录不存在时强制启用。环境变量 COMPOSER_VENDOR_DIR 仅当 composer.json 里没设 config.vendor-dir 时才可能 fallback 生效,-d 参数完全不控制安装路径——它只改配置文件查找位置。
-
config.vendor-dir必须是相对路径,如"lib/vendor"或"deps",不能以/开头,也不能含.. - 路径值写进
composer.json后,不会自动迁移已有vendor;必须手动rm -rf vendor再运行composer install -
composer dump-autoload不重建目录结构,也不更新autoload.php的路径硬编码,所以它对改路径毫无作用
改完路径后哪些地方必须同步更新
新路径不是“换皮”,而是整个依赖生态的入口偏移。所有直接引用旧路径的地方都会报错,比如 Class not found 或 require(): failed to open stream。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 代码中所有
require 'vendor/autoload.php'得改成require 'lib/vendor/autoload.php'(按你实际路径调整) -
config.bin-dir要一并配好,否则phpunit、laravel等 bin 命令找不到可执行文件;例如:"bin-dir": "lib/vendor/bin" - CI/CD 脚本里硬写的
vendor/bin/phpunit或./vendor/bin/phinx全部要替换成新路径 - PHPStorm 等 IDE 默认只索引
vendor,需手动在Settings → PHP → Include Paths中添加新路径
extra.installer-paths 不是用来改 vendor 总目录的
它只对声明了特定 type(如 wordpress-plugin、drupal-module)的包生效,且前提是已装 composer/installers 插件。普通 PHP 库(比如 monolog/monolog)哪怕写进规则也完全不受影响。
- 想让某个 WordPress 插件进
wp-content/plugins/,得先composer require composer/installers - 插件自身
composer.json必须有"type": "wordpress-plugin" - 根项目
composer.json的extra.installer-paths写法示例:"wp-content/plugins/{$name}/": ["type:wordpress-plugin"] - 路径值必须以
/结尾,不能以/开头,否则 Composer 会静默跳过该条规则
最容易被忽略的是:改了 vendor-dir 却没删旧 vendor,或者忘了改 autoload.php 引用——这两点会导致类加载失败,但错误信息往往不直接指向路径问题,而是表现为“找不到某个类”或“Class 'ComposerAutoloaderInit...' not found”。

















