首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件不是用-local somePath编辑的

文件不是用-local somePath编辑的
EN

Stack Overflow用户
提问于 2020-01-29 04:16:31
回答 8查看 27.7K关注 0票数 16

我在Golang项目中做了一些修改,后来运行了make test,它负责皮棉、格式化和单元测试。但是,当它运行linter.sh时,它会抛出以下错误

代码语言:javascript
复制
pkg/skaffold/kubernetes/wait.go:23: File is not `goimports`-ed with -local github.com/GoogleContainerTools/skaffold (goimports)
        "github.com/GoogleContainerTools/skaffold/pkg/skaffold/kubectl"

这是指向代码的链接。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2020-01-29 10:16:36

仅仅做正常的Sort imports可能不起作用。我认为您启用了goimports linting和local-prefixes,这就是错误File is not 'goimports'-ed with -local ...的原因。

通常,goimports以一种方式对导入的库进行排序,这样标准的pkg和其他库就在一个单独的组中。但是,当您启用本地前缀时,linting期望标准pkg、第三方pkg和带有指定本地前缀的pkg (在您的例子中是github.com/GoogleContainerTools/skaffold,也就是您自己的项目pkg),这3种类型在单独的组中。(参考文献:https://github.com/golangci/golangci-lint/issues/209)

代码语言:javascript
复制
import (
  // stdlib

  // third-party

  // other packages of that project
)

这些不一定要分成3组,你可以有更多的3组。只需确保上述3种类型(或2种)不在同一类型中。

Fix

运行goimports时,请确保使用-local标志运行它。我认为您也可以将IDE配置为这样做。在您的例子中,应该是这样的:

代码语言:javascript
复制
goimports -local "github.com/GoogleContainerTools/skaffold" -w .

-w标志,以便将更改写回 所有文件的. (点),或者您只可以指定一个文件。

票数 21
EN

Stack Overflow用户

发布于 2022-03-24 14:33:08

我也犯了同样的错误。皮棉为golangci-lint

我对导入(使用GoLand )、排序依赖项( go mod tidy )和删除空白( gofmt -w app.go )进行了排序。

除了:

golangci-lint run --fix

票数 10
EN

Stack Overflow用户

发布于 2020-05-31 19:31:24

在我的例子中,我不得不改变这一点:

代码语言:javascript
复制
import (
    "fmt"
    "github.com/gin-gonic/gin"
    "net/http"
    "strconv"
)

对此:

代码语言:javascript
复制
import (
    "fmt"
    "net/http"
    "strconv"

    "github.com/gin-gonic/gin"
)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59960394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档