我在 Golang 项目中进行了一些更改,后来又运行了make test
,该代码负责整理,格式化和单元测试。但是,当它运行 linter.sh 时,它会引发以下错误
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"
这是Code的链接。
(adsbygoogle = window.adsbygoogle || []).push({});
最佳答案
仅执行常规的Sort imports
可能无法正常工作。我认为您已启用goimports
的local-prefixes
linting,这就是为什么出现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)
import (
// stdlib
// third-party
// other packages of that project
)
These doesn’t have to be in 3 groups, you can have more that 3 groups. Just make sure that above 3 types (or 2) are not in the same one.
修复
运行goimports
时,请确保使用-local
标志运行它。我认为您也可以配置 IDE。在您的情况下,它应如下所示:```null
goimports -local “github.com/GoogleContainerTools/skaffold” -w .
> **\-w** flag so that it writes the changes back
>
> **.** _(dot)_ for all the files or you can specify just one file
(adsbygoogle = window.adsbygoogle || \[\]).push({});
[https://www.coder.work/article/7185002](https://www.coder.work/article/7185002)