VS Code离线文档服务依赖本地缓存与配置,非内置功能:需预装TypeScript的@types和lib.d.ts、Python的离线文档及Pylance stubs,配置typeRoots和tsdk路径,并禁用联网校验以确保IntelliSense、跳转定义等功能在无网时正常工作。

VS Code 本身不提供内置的离线文档服务,所谓“离线文档服务”,实际是指让 VS Code 在无网络时仍能访问语言参考、API 手册、类型定义(如 TypeScript 的 lib.d.ts)、或扩展自带的文档(如 Python 的 docs 或 Pylance 的内联提示)。这不能靠装个服务端程序解决,而是靠提前缓存 + 正确挂载 + 配置引导来实现。
怎么让 TypeScript/JavaScript 的 IntelliSense 离线可用
TypeScript 的智能提示(跳转定义、参数提示、错误检查)严重依赖本地的 lib.d.ts 和 @types/* 包。一旦断网,tsserver 会因无法自动获取类型声明而降级为纯文本匹配。
- 在有网机器上运行
npm install --save-dev typescript @types/node @types/react @types/react-dom(按需增减),确保node_modules/@types/下有对应声明文件 - 把整个
node_modules目录拷进离线项目(或统一放在公司内网 npm mirror 的离线镜像目录中) - 在项目根目录加
tsconfig.json,显式指定"typeRoots": ["./node_modules/@types"],避免 TS 自动去~/.vscode/extensions/.../node_modules找(那个路径不可控且常为空) - 不要依赖 VS Code 自带的 TS 版本;用
"typescript.tsdk"设置项指向你本地node_modules/typescript/lib,确保类型服务和@types版本对齐
Python 文档怎么做到不联网也能 Ctrl+Click 跳转
Python 扩展(如 ms-python.python)默认靠 pydoc 或远程 docs.python.org 补全,离线后跳转会失败或空白。
- 先确认已安装离线版 Python 文档:在有网机器上执行
python -m pydoc -p 8000,然后用浏览器打开http://localhost:8000看是否能正常浏览;成功后,用工具如httrack抓取整站(注意遵守 robots.txt),保存为本地静态 HTML 目录 - 在 VS Code 设置中配置
"python.help.openInBrowser": false和"python.sphinxBuildPath"(如果用了 Sphinx)或更关键的:"python.defaultInterpreterPath"必须指向你离线环境中真实可用的 Python 解释器(含site-packages) - 真正起作用的是
ms-python.vscode-pylance扩展——它自带大量内置 stubs,但仅限标准库。第三方包(如numpy、pandas)需手动安装对应types-*包,或启用"python.analysis.extraPaths"指向你提前下载好的.pyi存放目录
为什么装了 vscode-server 还不能查文档
有人误以为把 Remote-SSH 的 vscode-server 手动部署好,就能顺带解决文档问题——这是常见误解。vscode-server 只是远端执行环境的壳子,它不携带任何语言文档数据,也不启动 HTTP 文档服务。它的 out/ 目录里只有 VS Code 后端逻辑代码,没有 /docs 或 /api 路由。
-
vscode-server的作用仅限于转发编辑操作、终端 I/O、调试协议,和文档检索完全无关 - 如果你真需要一个本地可访问的文档站点(比如 Dash 风格),得另起服务:用
python3 -m http.server 8000起一个静态文件服务器,把抓下来的 Python/JS/TS 文档放进去,再在浏览器手动访问localhost:8000 - VS Code 内部不支持直接注册本地 HTTP 文档源;所有 “Go to Definition”、“Hover” 提示都走语言服务器协议(LSP),而 LSP 的响应内容取决于后端(如 Pylance、tsserver)能否从本地文件系统读到符号定义
最易被忽略的一点:很多语言服务器(尤其是旧版 Pylance 或 JSDoc 插件)会在首次启动时尝试联网校验 license 或下载补丁包。即使文档文件全在本地,只要这个校验环节失败,整个语言功能就静默降级。建议在有网时完成首次完整初始化,再打包整个 ~/.vscode-server/data/Machine/ 和 ~/.vscode/extensions/ 目录一并离线迁移。


















