golangci-lint 重新安装后出现看不见的错误

ins*_*501 6 go golint golangci-lint

我按照https://go.dev/doc/installgo上的说明将 的版本升级到 go1.18.3 :

rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.3.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
Run Code Online (Sandbox Code Playgroud)

然后我尝试为我的go项目运行Makefile,但提示未安装golangci-lint。我认为这是由于rm -rf /usr/local/go所有软件包都被删除了,或者我在升级过程中以某种方式弄乱了文件。我继续安装 golangci-lint:

go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.46.2
Run Code Online (Sandbox Code Playgroud)

报告了许多以前未见过的错误。喜欢

could not import math/bits (-: could not load export data: cannot import "math/bits" (unknown iexport format version 2), export data is newer version - update tool)'

undeclared name: `yaml

...
Run Code Online (Sandbox Code Playgroud)

我很困惑,因为该项目过去在 lint 检查后编译成功。我应该降级 gplangci-lint 吗?

小智 1

go install将把 golangci-lint 安装到你的 go/bin 路径中。那是它之前居住的地方,你是对的,rm -rf /usr/local/go应该将其删除。

至于新报告的错误,golangci-lint的每次更新都会带来更多的规则和linter。您可以降级、修复错误或根据您的喜好配置 golangci-lint https://golangci-lint.run/usage/configuration/