为什么 我一保存 "github.com/json-iterator/go" 它就直接被删除了. v...
Создано: 26 декабря 2025 г.
Создано: 26 декабря 2025 г.
为什么 我一保存 "github.com/json-iterator/go" 它就直接被删除了. vscode
在 VS Code 里一保存就把 github.com/json-iterator/go 删掉,这通常不是 VS Code 本身的问题,而是 Go 工具链或插件在自动“整理依赖”。下面按最常见 → 较少见的原因给你解释,并告诉你怎么解决。
goimports / gopls 在保存时自动清理未使用的依赖当你保存文件时,VS Code 的 Go 插件通常会做这些事:
goimportsgo.mod👉 如果 json-iterator/go 在代码里没有被实际使用,它就会被认为是“无用依赖”,然后被删掉。
go.mod 里手动加了:
gorequire github.com/json-iterator/go v1.1.12
go mod tidy
✅ 这是正常行为,不是 Bug
看你代码里有没有真正用到它,比如:
goimport jsoniter "github.com/json-iterator/go" var json = jsoniter.ConfigCompatibleWithStandardLibrary
如果:
go.modimport json-iterator/go那它一定会被删
哪怕先这样占位:
goimport _ "github.com/json-iterator/go"
或者:
goimport jsoniter "github.com/json-iterator/go" var _ = jsoniter.ConfigCompatibleWithStandardLibrary
如果你就是不想保存时动 go.mod:
Ctrl + ,)format on savesettings.json 里加:json"[go]": { "editor.formatOnSave": false, "editor.codeActionsOnSave": { "source.organizeImports": false } }
⚠️ 不推荐长期关闭,会影响 Go 的标准工作流
go mod tidy如果你保存时其实触发的是某个任务或插件:
bashgo mod tidy
那它的规则就是:
没被代码引用的依赖 = 删除
这是 Go 官方设计行为。
vendor/ 模式下如果:
vendor 目录GOFLAGS=-mod=vendor但 vendor 里没有这个包
👉 保存 / 构建时会被移除
go.work 项目go.work + 子模块里没用到
👉 顶层 go.mod 也会被整理掉
VS Code 不是“删除了你的依赖”,而是 Go 工具在帮你清理“没用到的包”
如果你愿意,我可以帮你:
go.modjson-iterator/goencoding/json 的姿势你可以直接把相关代码贴出来。