VSCode无code --update-docs命令,其文档依赖语言服务器和扩展在有网时下载的本地资源;离线需提前在联网机器触发加载、完整打包扩展目录(含node_modules)、覆盖到离线机对应路径。

断网电脑上无法“更新”VSCode内置文档,因为文档不随版本自动更新,也不走 Marketplace;所谓“离线文档”,实际是语言服务器或扩展自带的本地帮助资源,必须靠插件本身提供、且需提前在有网环境触发下载或打包完整目录。
为什么 code --update-docs 不存在,也别信网上搜到的伪命令
VSCode 没有 code --update-docs 或类似 CLI 命令。它的文档能力(比如悬停提示、参数说明、Go to Definition)完全依赖语言服务器(如 pyright、typescript-language-server)和扩展(如 ms-python.python)是否已加载对应语言的符号数据库与内联文档。这些数据不是 VSCode 自带的,而是扩展首次激活时按需拉取的——断网时这一步必然失败。
常见错误现象:
• Python 文件里 hover 函数只显示 def func(...),无 docstring 和类型说明
• TypeScript 中无法跳转到内置 API 定义,状态栏卡在 “Loading JS/TS language features…”
• 扩展已安装、启用,但 F1 → Developer: Toggle Developer Tools 控制台报 Failed to fetch https://.../lib.es2022.d.ts
真正有效的离线文档获取方式:必须提前在有网机器上完成三件事
离线文档不是“更新”,是“搬运”。核心动作只有三个,缺一不可:
- 在有网机器上用目标语言打开一个真实文件(如
test.py),等待状态栏变绿、hover 能正常显示完整文档 —— 这会强制触发扩展下载语言服务 + 文档资源 - 找到该扩展的完整安装目录(不是 .vsix 文件!),例如:
• Linux/macOS:~/.vscode/extensions/ms-python.python-2024.12.0
• Windows:%USERPROFILE%\.vscode\extensions\ms-python.python-2024.12.0 - 把这个整个文件夹压缩打包(保留
package.json、out/、node_modules/、dist/等所有子目录),拷到离线机对应路径下,覆盖同名目录
Remote-SSH 场景下文档失效?重点检查 ~/.vscode-server/extensions
如果你通过 Remote-SSH 连内网服务器,文档缺失通常发生在远程端。此时本地 VS Code 只是界面,真正的语言分析在远端执行,文档资源也必须存在远端扩展目录中:
- 远端路径是
~/.vscode-server/extensions,不是~/.vscode/extensions - 不能只拷贝本地
.vsix到远端再用code --install-extension—— 远端没网,安装过程会卡在下载依赖环节 - 正确做法:在有网的同类系统(同 OS、同架构、同 Python/Node 版本)上,用相同 VS Code 版本 + 相同扩展版本,打开对应语言文件触发完整初始化,然后打包整个远端风格的
ms-python.python-xxx目录,上传覆盖~/.vscode-server/extensions/下对应文件夹 - 验证是否生效:远端手动运行
ls -R ~/.vscode-server/extensions/ms-python.python-*/out/ | grep -i doc,确认存在文档解析相关模块(如docStringProvider.js)
别忽略的细节:Python 插件文档还依赖 Pylance,且版本强绑定
以 Python 为例,ms-python.python 本身不提供完整文档,它把工作委托给 ms-python.vscode-pylance。这意味着:
- 你必须同时准备两个扩展的完整目录:
ms-python.python-xxx和ms-python.vscode-pylance-yyy - 二者版本需匹配:查看
ms-python.python-xxx/package.json中extensionDependencies字段,确认它声明依赖的ms-python.vscode-pylance版本号(如"ms-python.vscode-pylance": "^2024.9.0") - 如果只拷了 Python 插件而漏了 Pylance,或 Pylance 版本太低,hover 仍只会显示签名,不会出现 docstring 和类型推导
最易被忽略的一点:文档资源常藏在 node_modules 子目录的 tar 包里(如 node_modules/@microsoft/pyright/dist/bundledLibs),直接删掉这个目录,文档就彻底消失——所以打包时不能跳过 node_modules。


















