Extensions Manager(本地插件管理器)
一款面向本地开发环境的 VS Code 插件管理器。它提供一个可视化的勾选视图,
让你按 环境(本地 / Remote-SSH) 和 工作区 两个维度,精确控制已安装插件
的启动与禁用;开启后默认禁用所有插件,只有放进启动列表的插件才会运行。
市场与安装完全不受影响——你依然可以自由搜索、下载、安装任何插件。本插件只控制
“哪些插件允许启动”,不会拦截 marketplace 的下载安装。
✨ 功能特性(Features)
- 默认禁用、白名单启动:开启管理器后,所有安装的插件默认不启动,只有加入启动列表的插件才会被允许运行。
- 环境维度控制(本地 / 远程分开管理):
- 本地环境启动列表
localAllow、禁用列表 localDeny
- 远程环境启动列表
remoteAllow、禁用列表 remoteDeny(适用于 Remote-SSH / WSL / 容器 / 隧道,自动根据 vscode.env.remoteName 切换)
- 工作区维度控制:把某个插件仅允许/禁用在当前工作区,配置存放在
.vscode/settings.json,随项目共享、随团队分发。
- 可视化勾选界面:每个插件显示真实名称、图标、ID 与描述,勾选即放行、取消即禁用,所见即所得。
- 一键全选 / 一键清空:本地/远程环境列表和工作区列表分别自带“全选”“清空”按钮,快速批量配置。
- 始终放行:
- 右键任意插件“加入始终放行”,该插件永久不被禁用,无论是否勾选、无论管理器开启与否。
- 右键“始终放行”分组中的插件“移出始终放行”,解除保护。
- 本插件自身始终位于“始终放行”,且无法被移出(接口与界面双重保护)。
- 点击跳转介绍页:点击任意插件即可打开它的详情 / README 介绍界面。
- 当前激活插件栏:实时展示当前真正激活(activated)的插件,并显示数量。
- 不影响安装:通过
extensions.allowed 的 denylist 写法实现,只拦截指定插件的启动,市场下载和安装照常可用。
- 状态指示:状态栏显示当前模式(默认禁用 / 允许全部),并提供“显示状态”命令。
📦 安装
将打包好的 .vsix 文件拖入 VS Code 编辑器窗口,或使用命令行:
code --install-extension extensions-manager-0.2.0.vsix
安装后在左侧活动栏即可看到 Extensions Manager 图标,点击进入管理视图。
🚀 快速上手
- 打开左侧活动栏的 Extensions Manager 视图。
- 在 本地环境启动列表(远程窗口显示为 Remote-SSH 环境启动列表)中勾选需要启动的插件。
- 需要按项目区分的,在 工作区启动列表 里勾选,会自动写入当前项目的
.vscode/settings.json。
- 如需某插件永不失效,右键它选择 加入始终放行;要解除时,在“始终放行”分组里右键该插件选择 移出始终放行(本插件自身不可移出)。
- 配置完成后点击 应用启动列表,并按提示重载窗口即可生效。
命令
| 命令 |
说明 |
| Extensions Manager: 应用启动列表 |
重新应用当前配置 |
| Extensions Manager: 启用管理器 |
切换为默认禁用模式 |
| Extensions Manager: 禁用管理器(允许全部) |
关闭管控,恢复所有插件可用 |
| Extensions Manager: 显示状态 |
查看当前模式、列表数量与激活插件数 |
| Extensions Manager: 刷新 |
重新扫描已安装插件 |
| 环境列表全选 / 环境列表清空 |
批量操作本地或远程环境列表 |
| 工作区列表全选 / 工作区列表清空 |
批量操作工作区列表 |
| 加入始终放行 / 移出始终放行 |
管理永久放行的插件 |
| 打开插件介绍 |
跳到插件的详情 / README 页 |
🗂️ 配置项说明
| 配置项 |
作用范围 |
说明 |
extensionsManager.enabled |
用户 |
总开关(true = 默认禁用) |
extensionsManager.localAllow |
用户 |
本地环境放行列表 |
extensionsManager.localDeny |
用户 |
本地环境禁用列表 |
extensionsManager.remoteAllow |
用户 |
远程环境放行列表 |
extensionsManager.remoteDeny |
用户 |
远程环境禁用列表 |
extensionsManager.workspaceAllow |
工作区 |
工作区放行列表(.vscode/settings.json) |
extensionsManager.workspaceDeny |
工作区 |
工作区禁用列表(.vscode/settings.json) |
extensionsManager.alwaysAllowed |
用户 |
始终放行,永不被禁 |
extensionsManager.reloadPrompt |
用户 |
应用后是否提示重载窗口 |
规则:禁用优先于放行;始终放行永远优先,无法被禁用。
示例:
{
"extensionsManager.workspaceAllow": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"],
"extensionsManager.workspaceDeny": ["eamodio.gitlens"],
"extensionsManager.alwaysAllowed": ["OALH-WH.extensions-manager"]
}
🛠️ 技术说明
VS Code 没有公开 API 直接启用/禁用任意插件。本插件使用 VS Code 官方支持的
extensions.allowed 配置,并采用 denylist 写法:
{ "*": true, "要禁用的插件ID": false }
"*": true 表示其余所有插件(含市场新装的)都允许安装。
- 明确写成
false 的插件才被禁用,且由 VS Code 原生机制即时生效。
这样既实现了“默认禁用”,又不影响市场下载安装,安全可靠。
👤 关于
插件定位:本地插件管理器。
作者联系方式:如果你在使用中遇到问题或有建议,欢迎通过邮件联系:
2267823623@qq.com
🔨 构建
npm install
npm run compile
npx vsce package