跨设备还原 VS Code 插件不能直接复制 .vscode/extensions;须用 code --list-extensions --show-versions > extensions.txt(UTF-8 编码,Windows 用 >)导出带版本号列表,再逐行执行 code --install-extension ID --force 安装。

直接复制 .vscode/extensions 文件夹不能用于跨设备还原插件 —— 它不是安装包,而是解压后的运行时产物,二进制不兼容会导致插件图标消失、设置页空白或报错 Cannot find module './extension'。
导出插件列表必须带版本号
只执行 code --list-extensions 会丢失版本信息,恢复时可能装上破坏性更新(比如项目依赖 ms-python.python@2025.12.1,却装了 @2026.4.1,LSP 响应异常)。
必须加 --show-versions:输出格式为 publisher.name@x.y.z,这是跨环境复现的最小可靠单元。
Windows 用户注意重定向用 >,别写成 >>,否则多次导出会混入旧记录。
文件编码必须是 UTF-8,否则含中文 publisher 名(如某些国内定制插件)会乱码。
批量安装必须逐行执行且加 --force
code --install-extension 不支持空格分隔多个 ID,也不接受 -f 或 --batch 参数。
Linux/macOS 推荐:
while IFS= read -r ext; do timeout 120 code --install-extension "$ext" --force || true; done < extensions.txt
PowerShell(Windows)必须用:
Get-Content extensions.txt | ForEach-Object { code --install-extension $_ --force }--force 跳过“已存在”提示,避免流程中断;timeout 或 try/catch 防止单个插件卡死整个流程(尤其像 ms-vscode.cpptools 这类会尝试联网校验的插件)。
含 native 二进制的插件需匹配 Node.js 版本
像 esbenp.prettier-vscode、ms-python.python 这类含 native 模块的插件,安装后日志显示 Installation completed,但实际不生效,常见原因是目标机 Node.js 版本与插件编译时版本不一致。
验证方法:打开命令面板 → Developer: Toggle Developer Tools → Console 标签页,搜 node_modules 或 binding 相关报错。
解决路径:
• 查看插件文档中声明的 Node.js 兼容范围
• 在目标机升级/降级 Node.js 至匹配版本
• 或改用纯 JS 实现的替代插件(如用 prettierd 替代 prettier-vscode)
真正麻烦的从来不是“怎么装上”,而是“装上之后哪些东西悄悄失效”——比如 python.defaultInterpreterPath 这类硬编码路径,同步到另一台系统后 VSCode 照单全收但 Python 插件静默罢工;又比如 SSH 配置、Prettier 配置文件、GitLens 的 UI 状态,这些全都不在任何备份机制覆盖范围内,必须单独处理。


















