信息发布→ 登录 注册 退出

如何在composer.json中为特定包指定安装路径?(composer-installers)

发布时间:2026-01-08

点击量:
Composer不支持为单个包自定义安装路径,但可通过composer/installers插件实现对WordPress插件、Drupal模块等特定type包的路径重定向;需在包中声明type字段,并可在根项目extra.installer-paths中配置自定义映射。

Composer 本身不支持为单个包自定义安装路径,但可以通过 composer/installers 插件实现对特定类型包(如 WordPress 插件、Drupal 模块等)的路径重定向。

启用 composer/installers 插件

该插件是事实标准,多数 CMS 相关包已声明兼容。你只需确保项目中启用了它:

  • 运行 composer require composer/installers(推荐方式,自动启用)
  • 或手动在 composer.jsonrequire 中添加:
    "composer/installers": "^2.0"

依赖包需声明 type 字段

composer/installers 不直接识别包名,而是根据包的 "type" 值匹配预设规则。例如:

  • "type": "wordpress-plugin" → 安装到 wp-content/plugins/
  • "type": "drupal-module" → 安装到 web/modules/contrib/
  • "type": "typo3-cms-extension" → 安装到 public/typo3conf/ext/

你无法修改第三方包的 type,所以只能选用已正确定义 type 的包;若想为自己的私有包定制路径,需在它的 composer.json 中设置对应 type 并遵循命名规范。

自定义 type 映射(高级用法)

如果你有自定义类型(如 "type": "my-library"),可在根项目的 composer.json 中扩展映射:

{
  "extra": {
    "installer-paths": {
      "custom/libraries/{$name}/": ["type:my-library"]
    }
  }
}

注意:
{$name} 是包名(如 acme/my-tool
• 路径必须以斜杠结尾
• 支持通配符如 ["vendor/acme/*"]["acme/my-tool"] 精确匹配

不推荐:强行改 vendor 目录结构

不要试图用符号链接、post-install-cmd 脚本或修改 vendor-dir 来“移动”单个包——这会破坏自动加载、版本锁定和依赖解析,Composer 也不保证此类操作的稳定性。

标签:# word  # js  # json  # composer  # wordpress  # cms  # wordpress插件  # require  # public  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!