⚡ RunScript
执行 composer.json 中定义的脚本,并可向脚本传递额外参数,等价于执行 composer run-script <script> -- <args...>。
何时使用
当你需要触发项目里定义的自动化脚本(如 test、build、deploy)并希望透传命令行参数时使用。脚本定义在 composer.json 的 scripts 段。
签名
go
func (c *Composer) RunScript(scriptName string, args ...string) (string, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
scriptName | string | 要执行的脚本名称,需在 composer.json 的 scripts 中定义 |
args | ...string | 透传给脚本的额外参数(会跟在 -- 之后) |
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一返回值 | string | 命令执行的标准输出 |
| 第二返回值 | 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)
}
// 执行 test 脚本并传递过滤器参数
output, err := comp.RunScript("test", "--filter=UserTest")
if err != nil {
log.Fatalf("执行脚本失败: %v", err)
}
fmt.Println(output)
}进阶
- 不需要传参、只想简单地跑一个脚本,可使用更简洁的
ExecuteScript(基于composer run)。 - 想查看项目里都定义了哪些脚本,使用
ListScripts。 - 想以编程方式读取脚本定义,可调用
GetScripts()方法获取map[string]interface{}。