Skip to content

⚡ RunScript

执行 composer.json 中定义的脚本,并可向脚本传递额外参数,等价于执行 composer run-script <script> -- <args...>

何时使用

当你需要触发项目里定义的自动化脚本(如 testbuilddeploy)并希望透传命令行参数时使用。脚本定义在 composer.jsonscripts 段。

签名

go
func (c *Composer) RunScript(scriptName string, args ...string) (string, error)

参数

参数类型说明
scriptNamestring要执行的脚本名称,需在 composer.jsonscripts 中定义
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{}

基于 MIT 许可证发布