为什么 我一保存 "github.com/json-iterator/go" 它就直接被删除了. v...

Creato il: 26 dicembre 2025

Risposto usando GPT-5.2 da Chat01

Domanda

为什么 我一保存 "github.com/json-iterator/go" 它就直接被删除了. vscode

Risposta

在 VS Code 里一保存就把 github.com/json-iterator/go 删掉,这通常不是 VS Code 本身的问题,而是 Go 工具链或插件在自动“整理依赖”。下面按最常见 → 较少见的原因给你解释,并告诉你怎么解决。


最常见原因(90% 的情况)

1️⃣ goimports / gopls 在保存时自动清理未使用的依赖

当你保存文件时,VS Code 的 Go 插件通常会做这些事:

  • 自动格式化代码
  • 自动运行 goimports
  • 自动更新 go.mod

👉 如果 json-iterator/go 在代码里没有被实际使用,它就会被认为是“无用依赖”,然后被删掉。

典型表现

  • 你在 go.mod 里手动加了:
    go
    require github.com/json-iterator/go v1.1.12
  • 一保存文件,VS Code 立刻把它删了
  • 终端里可能还会看到类似:
    go mod tidy
    

这是正常行为,不是 Bug


如何确认是不是这个原因?

看你代码里有没有真正用到它,比如:

go
import jsoniter "github.com/json-iterator/go" var json = jsoniter.ConfigCompatibleWithStandardLibrary

如果:

  • ❌ 只加了 go.mod
  • ❌ 没有任何 import json-iterator/go

那它一定会被删


解决办法(推荐顺序)

✅ 方案一(推荐):在代码中实际使用它

哪怕先这样占位:

go
import _ "github.com/json-iterator/go"

或者:

go
import jsoniter "github.com/json-iterator/go" var _ = jsoniter.ConfigCompatibleWithStandardLibrary

⚙️ 方案二:关闭“保存时自动整理 imports”(不太推荐)

如果你就是不想保存时动 go.mod

  1. 打开 VS Code 设置(Ctrl + ,
  2. 搜索:format on save
  3. 或直接在 settings.json 里加:
json
"[go]": { "editor.formatOnSave": false, "editor.codeActionsOnSave": { "source.organizeImports": false } }

⚠️ 不推荐长期关闭,会影响 Go 的标准工作流


🧹 方案三:你手动运行过 go mod tidy

如果你保存时其实触发的是某个任务或插件:

bash
go mod tidy

那它的规则就是:

没被代码引用的依赖 = 删除

这是 Go 官方设计行为。


不太常见,但也可能的原因

4️⃣ 你在 vendor/ 模式下

如果:

  • vendor 目录
  • GOFLAGS=-mod=vendor

vendor 里没有这个包
👉 保存 / 构建时会被移除


5️⃣ 你在写的是 go.work 项目

go.work + 子模块里没用到
👉 顶层 go.mod 也会被整理掉


一句话总结

VS Code 不是“删除了你的依赖”,而是 Go 工具在帮你清理“没用到的包”

如果你愿意,我可以帮你:

  • 看你的 go.mod
  • 看你当前代码怎么用 json-iterator/go
  • 告诉你正确替换 encoding/json 的姿势

你可以直接把相关代码贴出来。

Condividi questa Q&A