在某些情况下,由于信息安全等原因,我们需要在网络访问受限的环境中使用Visual Studio Code(简称VS Code),此时无法通过插件市场在线安装插件,需要使用离线安装。下面是详细步骤。
-
准备UTF-8编码的插件列表文件,以从可以正常访问插件市场的旧设备导出为例
1.1 确保code命令全局可用:打开VS Code主程序所在的目录(如果有桌面快捷方式,右键>属性>打开文件所在的位置),将bin子目录添加到PATH。
1.2 在普通位置(如"下载"文件夹)打开终端,执行命令:
code --list-extensions > vscode-extensions.txt1.3 用记事本打开该文件,用UTF-8编码另存。
1.4 该文件的每一行代表一个插件名称,可根据需要删除或增加。注意,部分插件之间存在依赖关系,如果依赖缺失会导致安装失败。
-
.vsix插件安装包下载2.1 编写批量下载脚本,比如
download_extensions.pypy# download_vscode_extensions.py import requests import os EXT_FILE = "extensions-common.txt" OUTPUT_DIR = "vscode-offline-extensions-common" os.makedirs(OUTPUT_DIR, exist_ok=True) with open(EXT_FILE, "r", encoding="utf-8") as f: extensions = [line.strip() for line in f if line.strip()] for ext_id in extensions: try: publisher, name = ext_id.split(".") # build Marketplace download link url = f"https://marketplace.visualstudio.com/_apis/public/gallery/publishers/{publisher}/vsextensions/{name}/latest/vspackage" print(f"Download {ext_id} ...") resp = requests.get(url, timeout=30) resp.raise_for_status() with open(os.path.join(OUTPUT_DIR, f"{ext_id}.vsix"), "wb") as f_out: f_out.write(resp.content) print(f"Success: {ext_id}.vsix") except Exception as e: print(f"Fail: {ext_id} - {e}") print(f"\nAll extensions have saved to: {os.path.abspath(OUTPUT_DIR)}")2.2 安装脚本运行所需依赖,运行脚本,下载插件到指定目录
-
编写插件安装脚本,比如
install-vsix.ps1powershell# Open PowerShell, execute `.\install-vsix` Get-ChildItem -Path . -Filter *.vsix | ForEach-Object { code --install-extension $_.FullName } Write-Host "Extension installation completed!" -ForegroundColor Green Read-Host "Press Enter to exit"如果使用macOS或Linux,核心脚本为:
bashfor file in *.vsix; do code --install-extension "$file" done -
将上一步编写的脚本移动到插件目录中,然后将整个插件目录拷贝到新设备。
-
在新设备上离线安装插件:在新设备的插件目录中打开终端,执行安装脚本。安装完成后,重启 VS Code 即可生效。