Skip to content

📁 AddPathRepository

添加一个本地路径作为 Composer 包源(typepath 的仓库),常用于本地同时开发多个相互依赖的包。

何时使用

当你在本地同时开发多个包、希望某个包以本地路径方式被另一个项目依赖时使用。Composer 会直接从指定路径加载包,并可通过 symlink 选项建立软链接,修改源码即时生效。

签名

go
func (c *Composer) AddPathRepository(name string, path string, options map[string]interface{}) error

参数

参数类型说明
namestring仓库名称,作为 composer.jsonrepositories.<name> 的键
pathstring本地包的相对或绝对路径,例如 ../my-package
optionsmap[string]interface{}仓库选项,如 {"symlink": true};可为 nil

返回值

error:添加路径仓库过程中发生错误时返回相应错误信息,成功时为 nil

示例

go
package main

import (
	"fmt"
	"log"

	"github.com/scagogogo/composer-skills/pkg/composer"
)

func main() {
	comp, err := composer.New(composer.DefaultOptions())
	if err != nil {
		log.Fatalf("初始化失败: %v", err)
	}

	// 添加本地路径仓库并启用 symlink
	options := map[string]interface{}{
		"symlink": true,
	}
	if err := comp.AddPathRepository("local", "../my-package", options); err != nil {
		log.Fatalf("添加路径仓库失败: %v", err)
	}

	fmt.Println("路径仓库添加完成")
}

进阶

  • 添加 Git/SVN 等 VCS 仓库用 AddVcsRepository;添加 Composer 私有源用 AddComposerRepository
  • options 中常用键:symlink(是否软链)、versions(限定可用版本)。
  • 底层实现是 AddRepository(name, Repository{Type: PathRepository, URL: path, Options: options})
  • 添加后可用 ListRepositories 确认,移除用 RemoveRepository

基于 MIT 许可证发布