插件报“Cannot find module”或“Extension host terminated”根本不是插件未安装,而是依赖的运行时模块(如vscode-languageclient、pyright)未下载或路径错乱;离线环境需在有网机上完整初始化并整目录复制extensions文件夹,否则仅安装.vsix等于空壳。

插件报“Cannot find module”或“Extension host terminated”时,缺的不是插件本身
这类错误根本不是插件没装好,而是它依赖的底层运行时模块压根没下载或路径错乱。VSCode 插件(尤其是 Python、Vue、AI 类)首次激活时才会拉取 vscode-languageclient、pyright、vue-language-server 这类二进制或 Node.js 模块,离线环境直接卡死在“Downloading…”状态栏,或者输出面板里报 Cannot find module 'vscode-languageclient'。
- 别重装 .vsix 文件——它只是外壳,不带任何运行时
- 别指望
code --install-extension自动补全依赖——离线时它连网络请求都发不出去 - 必须在有网机器上触发完整初始化:打开一个
.py或.vue文件,等状态栏变绿、输出面板不再滚动日志,才算真正下载完成
手动复制 extensions 目录才是离线部署唯一可靠方式
拖拽 .vsix 或命令行安装只负责解压元数据,真正的语言服务器、调试器、格式化工具都在 ~/.vscode/extensions/xxx-yyy-zzz/ 目录下的 node_modules、out 或 dist 子目录里。离线机上只放 .vsix 文件,等于只装了个空壳。
- 确认目标插件目录已完整解压:Windows 是
%USERPROFILE%\.vscode\extensions\ms-python.python-2024.6.0,macOS/Linux 是~/.vscode/extensions/ms-python.python-2024.6.0 - 目录里必须包含
package.json、out/(或dist/)、node_modules/三个关键部分;如果只有extension.vsix文件躺在那里,说明安装根本没走完 - 复制时要整目录拷贝,不能只复制
node_modules子目录——很多插件的入口逻辑和资源路径是相对package.json定位的
VC++ Redistributable 缺失会导致 Codex、CodeGeeX 等 AI 插件直接崩溃
像 Codex、CodeGeeX 这类含本地二进制组件的插件,在 Windows 上遇到 0xC00000FD(STATUS_STACK_OVERFLOW)错误,90% 是因为系统缺少 Visual C++ Redistributable。这不是 VSCode 的问题,是插件 native code 运行时找不到 vcruntime140.dll 或 msvcp140.dll。
- 必须同时安装 x86 和 x64 版本的
Microsoft Visual C++ 2015–2022 Redistributable,哪怕你用的是 64 位系统 - 安装后重启系统,否则 PATH 不会刷新,VSCode 仍找不到 DLL
- 验证方法:打开命令提示符,执行
where vcruntime140.dll,应返回C:\Windows\System32\vcruntime140.dll和C:\Windows\SysWOW64\vcruntime140.dll两条路径
远程开发(Remote-SSH)下插件不加载,本质是 extensionKind 配置缺失
CodeGeeX、Volar 等插件默认声明为 ["ui"],意味着它们只在本地 VSCode 主进程中运行。一旦连上 Remote-SSH,这些插件就彻底失联——不是没装,是 VSCode 根本不往远程端派发进程。
- 必须显式覆盖
remote.extensionKind设置:在远程窗口的settings.json中添加"remote.extensionKind": { "codex-team.codegeex": ["ui", "workspace"] } - 改完必须重启远程窗口:点击左下角 SSH 状态栏 → “Reopen Folder in Remote Window”,仅 Reload Window 不生效
- 别手动改插件包里的
package.json——每次 VSCode 自动更新插件都会覆盖,设置级覆盖才是稳定方案
真正麻烦的从来不是“怎么装”,而是“装完之后谁来跑”。离线环境下,VSCode 不会替你猜依赖、不会自动补二进制、也不会跨架构找 DLL。每一步都得人盯住——从有网机上等那个绿色状态栏,到确认 node_modules 里真有 pyright,再到检查 where vcruntime140.dll 的输出。漏掉任意一环,插件就只是个灰色图标。











