怎么做go linters忽略供应商/?

mca*_*dre 6 go

我们如何制作go vet,gofmt和其他Go linter工具忽略第三方文件vendor/,最好具有准确的累积退出状态?

例如,是否会find . -name vendor -prune -o -name '*.go' -exec gofmt -s -w {} \;提供有意义的退出状态?

Hav*_*ock 5

我经常这样做

go fmt $(go list ./... | grep -v /vendor/)
go test $(go list ./... | grep -v /vendor/)
Run Code Online (Sandbox Code Playgroud)

但是,自从我开始使用govendor发现后,我可以使用较少打字的govendor来做同样的事情

govendor fmt +l // +l is shorthand for local
Run Code Online (Sandbox Code Playgroud)


Ain*_*r-G 1

您可以将所有源代码放入子目录中(例如internal或lib)。或者,您可以这样做:

go vet ./... | grep -v vendor/ && exit 1 || exit 0
Run Code Online (Sandbox Code Playgroud)