下面介绍一下 golangci.yaml 的各个字段的含义:
run
go
: 指定 Go 版本。timeout
: 设置分析一个包的最长时间,避免长时间卡住。tests
: 指定是否同时执行单元测试。modules-download-mode
: 设置模块下载模式。issues-exit-code
: 指定检查到问题时返回的退出码。build-tags
: 指定编译标签用于特定的构建。skip-dirs
: 跳过包含指定目录的代码块。skip-files
: 跳过指定文件。
linters
disable
: 禁用指定的检查器。presets
: 启用预定义的检查器列表。custom
: 自定义检查器。
linters
用于指定需要启用的检查器(linter)。golangci-lint 内置了一些常见的检查器,也支持用户自定义检查器。在
disable
和 presets
选项中,可以指定需要禁用或启用的检查器。例如,disable
中禁用了 gofumpt
和 rowserrcheck
检查器,而 presets
中启用了 bugs
、error
、format
、import
、performance
和 unused
这些检查器。linters-settings
linters-settings
用于指定检查器的具体配置项,可以针对每个检查器进行单独的配置。例如,linters-settings
中针对 gosec
检查器进行了端口扫描的 IP 和端口配置。issues
issues
中可以设置所有问题通用的配置项,例如是否忽略由测试文件引起的问题、是否忽略注释、是否忽略第三方包和编译器错误等。exclude-rules
exclude-rules
可以排除某些规则,避免特定规则带来的误判。例如,在此配置文件中设置排除了 SA1017
和 SA1018
规则。warnings-as-errors
warnings-as-errors
指定是否将所有警告视为错误,如果启用,则在遇到警告时,golangci-lint 将返回非零退出码。build
build
用于设置构建相关的选项,包括可执行程序的名称、平台和标签等。cache
cache
用于设置缓存相关的选项,包括使用的缓存类型和不同缓存级别的清理策略等。debug
debug
用于设置调试相关选项,例如打印版本信息、使用 GDB 调试等。以上是 golangci.yaml 的字段含义和作用。根据具体项目和需求,可以在此文件中进行配置调整,以达到更好的代码分析和检查效果。