go - 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
。有可能避免这种情况吗?
解决方案
在 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。)
推荐阅读
- reactjs - 忽略 React App 中服务 index.html 文件中的特定 url
- python - 可点击的字形在散景上生成图
- list - 如何防止 NavigationView 影响子视图
- arrays - System.InvalidCastException:“指定的演员表无效。” 来自 Json API 的 Xamarin Spinner 数组
- java - QueryDsl BooleanBuilder:如何创建一个比较列表内容的谓词?
- scala - 如何使用 Play-JDBC 解决“Connection => [A]”的类型不匹配?
- php - php $image = get_field('image') // if // else
- laravel - Laravel:使用队列和作业发送电子邮件
- ios - 点击单元格下载文件并向上或向下滚动表格时应用程序崩溃
- javascript - 如何检测网站是否被谷歌缓存/爬虫查看