📁 AddPathRepository
添加一个本地路径作为 Composer 包源(type 为 path 的仓库),常用于本地同时开发多个相互依赖的包。
何时使用
当你在本地同时开发多个包、希望某个包以本地路径方式被另一个项目依赖时使用。Composer 会直接从指定路径加载包,并可通过 symlink 选项建立软链接,修改源码即时生效。
签名
go
func (c *Composer) AddPathRepository(name string, path string, options map[string]interface{}) error参数
| 参数 | 类型 | 说明 |
|---|---|---|
name | string | 仓库名称,作为 composer.json 中 repositories.<name> 的键 |
path | string | 本地包的相对或绝对路径,例如 ../my-package |
options | map[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。