如何列出 Go 中所有非标准/自定义包?

pkgs, err := packages.Load(nil, pattern)

例如,如果pattern = "std"then 它返回所有标准包。

但是,如果我想获取具有自定义模式的自定义/用户定义包的列表,例如仅表单的供应商文件夹,github.com/X/Y/vendor/...那么我该如何指定该模式呢?

我尝试过使用/vendor/,以及函数中的github.com/X/Y/vendor/一些其他组合。他们都没有工作。patternLoad()


繁星点点滴滴
浏览 85回答 1
1回答

慕工程0101907

...您可以在pattern函数字段中使用语法Load()。例子我的 Go 模块需要github.com/hashicorp/go-multierror包:module mymodule require github.com/hashicorp/go-multierror v1.0.0所以,下面的代码:package mainimport (    "fmt"    "golang.org/x/tools/go/packages")func main() {    pkgs, err := packages.Load(nil, "github.com/hashicorp...")    if err == nil {        for _, pkg := range pkgs {            fmt.Println(pkg.ID)        }    }}返回以(甚至是传递性的)开头的所有必需的包github.com/hashicorp:github.com/hashicorp/errwrapgithub.com/hashicorp/go-multierror请注意,您还可以...在模式中的任何位置使用 ( ...hashicorp..., ...ha...corp..., github.com/...)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go