golang之代码检查工具golangci-lint

发布时间 2023-08-17 12:58:28作者: X-Wolf

日常开发中,想要保证工程中代码能够正常运行, 一般都会使用vet进行代码静态扫描, 但是每次手动执行命令有点不太方便,如果在每次开发完成之后,git提交的时候都进行下检查就OK了,想好就干!!!

 

这里使用golangci-lint这个包: https://golangci-lint.run

golangci-lint 是一个代码检查工具的集合,聚集了多种 Go 代码检查工具,如 golintgo vet 等。

优点:

  • 运行速度快
  • 可以集成到 vscode、goland 等开发工具中
  • 包含了非常多种代码检查器
  • 可以集成到 CI 中

涉及linter: https://golangci-lint.run/usage/linters/

 

[安装]

# binary will be $(go env GOPATH)/bin/golangci-lint
curl -sSfL https://raw.githubusercontent.com/Goci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.42.1

golangci-lint --version

 

更多命令:

# 查看版本
golangci-lint version

# 查看linter
golangci-lint help linters

# 执行检查操作, 可指定目录
golangci-lint run [dir ...]

# golangci-lint 可以通过 -E/--enable 去开启指定 linter,或者 -D/--disable 禁止指定 linter。
1golangci-lint run --disable-all -E errcheck
如上命令代表的就是除了 errcheck 的 linter,禁止其他所有的 linter 生效。



# golangci-lint 还可以通过 -p/--preset 指定一系列 linter 开启。
1golangci-lint run -p bugs -p error

如上命令代表的就是所有属于 bugs 和 error 分类的 linter 生效。

 更多可以 golangci-lint run -h