📦 ArchivePackage
创建指定包的归档文件,可指定版本。等价于执行 composer archive <packageName>[=<version>] --dir=<destination>。
何时使用
当需要把某个依赖包(而非整个项目)打包成压缩包,用于离线分发或镜像归档时使用。
签名
go
func (c *Composer) ArchivePackage(packageName string, version string, destination string) (string, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
packageName | string | 要归档的包名,例如 symfony/console |
version | string | 包版本,例如 v5.4.0;传空字符串则使用最新版本 |
destination | string | 存储归档文件的目标目录路径 |
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一返回值 | string | 归档命令的输出 |
| 第二返回值 | error | 创建归档失败时返回 |
示例
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)
}
// 归档指定版本的包
output, err := comp.ArchivePackage("symfony/console", "v5.4.0", "/tmp/pkg-archive")
if err != nil {
log.Fatalf("创建包归档失败: %v", err)
}
fmt.Println("包归档结果:", output)
// 归档最新版本
if _, err := comp.ArchivePackage("symfony/console", "", "/tmp/pkg-archive"); err != nil {
log.Fatalf("创建包归档失败: %v", err)
}
}