代码之家  ›  专栏  ›  技术社区  ›  snorberhuis

goimports需要忽略供应商包

  •  5
  • snorberhuis  · 技术社区  · 7 年前

    dep 在我的项目中。这一切都很好,但它还添加了一个供应商目录。我现在需要更新我的工具以忽略此目录,否则我的供应商软件包将被修改,或者我会收到误报警告。我目前正在使用以下工具:

    • goimports-w
    • 去看兽医

    这些工具也用于CI。我确实希望使用goimport保持自动格式化,但我愿意开始使用gometalinter。我并不是真的在寻找使用grep和find magic的解决方案。

    我怎样才能忽略这些工具 vendor/ ?

    2 回复  |  直到 7 年前
        1
  •  9
  •   S. Diego    7 年前

    gometalinter有一个“-vendor”标志来忽略供应商文件夹。该标志将所需的参数传递给底层工具以忽略文件夹。

    因此,一种解决方案是仅使用govet、golint和goimports与gometalinter

    gometalinter --disable-all --enable=vet --enable=golint --enable=goimports --vendor ./...
    

    另一个解决方案可能是(复制自 gist ):

    goimports -d $(find . -type f -name '*.go' -not -path "./vendor/*")
    

    我更喜欢第一种解决方案。这样,您可以根据需要轻松添加其他过梁。

        2
  •  0
  •   yee    7 年前

    为了将$GOPATH中的目录排除在Go文件的扫描范围之外,goimports在$GOPATH/src/处考虑了一个配置文件。goimportsignore,其中可能包含空行、注释行(以“#”开头)或在扫描时忽略的相对于配置文件命名目录的行。不允许使用globbing或regex模式。使用“-v”verbose标志来验证它是否工作,并查看goimports正在做什么。

    https://godoc.org/golang.org/x/tools/cmd/goimports

    因此,您可以将供应商目录添加到 $GOPATH/src/.goimportsignore 文件,例如:

    github.com/foo/bar/vendor
    
    推荐文章