vscode离线更新文档资源需手动替换插件深层子目录中的模型、内核或符号表等文件,仅拖拽.vsix只能更新代码和元数据,无法同步依赖的离线文档包,必须在联网机首次激活并完整拷贝对应目录结构。

VSCode 本身没有“离线文档”这个独立组件,你实际想更新的,是插件内置的离线文档资源(比如 CodeGeex 的 localMode、vscode-drawio 的 Draw.io 内核)或语言扩展附带的本地帮助内容(如 Python、TypeScript 的内联文档)。这些必须手动替换,不能靠“检查更新”按钮。
为什么拖 .vsix 文件进 VSCode 不等于更新文档
拖拽 .vsix 文件只更新插件代码和元数据,不自动同步其依赖的离线文档包。例如:
-
aminer.codegeex升级到 2.22.3 后,codegeex.localMode才可用,但若未在有网机器上触发过首次加载,localModel对应的模型文件仍为空 -
hediet.vscode-drawio的.vsix里只含启动器逻辑,真正渲染用的drawio/src/main/webapp/资源需单独替换 -
ms-python.python插件的 docstring 补全依赖pylance的本地符号表,而该表在离线时不会生成
如何确认文档资源是否已更新成功
不能只看插件版本号,得验证运行时行为:
- CodeGeex:打开设置搜索
codegeex.localMode,值为true且右下角出现齿轮图标 → 说明模型加载通道就绪;若点击补全无响应,大概率是~/.vscode/extensions/aminer.codegeex-*/dist/model/下没文件 - vscode-drawio:新建
test.drawio→ 右键「Open with Draw.io」→ 点击顶部菜单「Arrange → Insert → Advanced → SVG Shape」,能弹出新图形库才表示内核已更新 - Python 文档提示:光标停在
requests.get(括号内 → 按Ctrl+Shift+Space→ 出现参数列表且含timeout: Union[float, Tuple[float, float]]类型注解,才算文档资源生效
离线文档资源更新的三个硬性前提
缺一不可,否则看似安装成功,实则文档不可用:
-
必须在有网机器上完成首次激活:像
ms-python.python或esbenp.prettier-vscode,需先在联网环境打开对应文件(.py/.js),等状态栏显示“Ready”后再打包整个~/.vscode/extensions/xxx-*目录 -
路径结构不能破坏:vscode-drawio 要求新 Draw.io 资源严格放在
drawio/src/main/webapp/下,多一层目录或少一个styles/子文件夹都会导致白屏 -
不能跳过 native 依赖:含二进制组件的插件(如
ms-python.pylance)离线时需一并拷贝out/和node_modules/下的pyright或tsserver可执行文件,仅替换 JS 逻辑无效
最易被忽略的是:文档资源往往藏在插件目录深层子路径里,不是 package.json 或 README.md 这类显眼位置;直接重装 .vsix 会清空这些已有资源,导致“越更新越没文档”。











