golangci-lint配置文件必须在根级声明version字段,v1.50.0+仅支持version: 2(整数,不可加引号或小数),且需置于run、linters等字段之前,否则报“unknown version”或静默忽略规则。

在Golangci-lint配置文件中正确填写version字段,是确保配置格式被识别、避免启动时报错的关键一步。如果写错或缺失,golangci-lint会拒绝加载配置,并提示“unknown version”或直接静默忽略部分规则。
确认当前golangci-lint支持的version值
运行 golangci-lint --version 查看CLI版本,再对照官方文档确定该版本支持的配置schema。v1.50.0+ 默认只接受 【version: 2】,旧版如v1.48.0仍支持version: 1,但已弃用。
不查版本直接硬写 version: 1 可能导致新版本工具完全不读取你的issues或linters配置。
在配置文件中声明version字段
version字段必须是YAML根级字段,且必须为整数,不能加引号,不能写成字符串 "2" 或 float 2.0。
正确写法(以 .golangci.yml 为例):
version: 2
错误写法示例:version: "2"、version: 2.0、Version: 2(大小写敏感)、version: 3(尚未支持)。
不同配置格式下的写法差异
方法一:YAML格式(最常用)
在文件开头第一行或前几行(无缩进)写:version: 2。它必须位于所有其他字段(如run、linters-settings)之上,否则解析失败。
方法二:TOML格式(如.golangci.toml)
写成:version = 2,等号前后可有空格,但不能换行;若写成 [version] 或 version = "2" 将被忽略。
方法三:JSON格式(极少用)
写成:"version": 2,注意是数字而非字符串;JSON不支持注释,且必须是合法JSON对象顶层键。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!











