首页 > 解决方案 > Go mod tidy 从 go.mod 中删除 linter

问题描述

在我的小项目中,我有一个脚本,它通过运行静态代码检查来确保正确的代码质量,例如,我使用errcheck来验证我是否处理了代码中的每个错误。在dep中,有一个特殊的部分用于这种依赖项,称为required

将其用于:linter、生成器和其他开发工具:

  • 您的项目需要
  • 不是由您的项目直接或传递地导入的

对于 go 模块,我可以errcheck通过执行以下命令获取给定版本: go get github.com/kisielk/errcheck@v1.2.0

go.mod但是,当我执行时 ,它将被删除: go mod tidy。有可能避免这种情况吗?

标签: gogo-modules

解决方案


在 Go 模块中,“代码”、“测试”和“工具”依赖之间目前没有区别:依赖就是依赖。

如果要记录工具的特定版本,可以import在通常被构建约束排除的源文件中添加该工具的路径,例如// +build tools.

例如:

// +build tools

// Package tools records tool dependencies. It cannot actually be compiled.
package tools

import _ "github.com/kisielk/errcheck"

(正如 JimB 所指出的,有关更多详细信息,请参阅http://golang.org/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module。)


推荐阅读