← ClaudeAtlas

vsce-installlisted

干净地安装/升级 VSCode 扩展(VSCE)到最新版。当用户要求「安装/升级/更新/重装 VSCode 扩展」「装最新版扩展」「升级 VSCE」「重装扩展」时触发。默认从 GitHub Release 取最新版 vsix,并强制执行「卸载历史版本 → 删残留目录 → 清 contribution 缓存 → 重装」四步,避免历史版本残留导致 view 类型解析冲突(典型症状:webview view 报 "There is no data provider registered that can provide view data",点活动栏图标打不开面板)。
xhqing/CapabilityManagerAgent · ★ 0 · AI & Automation · score 72
Install: claude install-skill xhqing/CapabilityManagerAgent
# VSCE Install — 干净安装/升级 VSCode 扩展 ## 为什么需要这个 skill VSCode 扩展升级时,旧版本目录常残留在 `~/.vscode/extensions/` 下(每个版本一个独立目录 `<publisher>.<name>-<version>`),VSCode 的 contribution manifest 缓存(`CachedExtensionVSIXs`)也可能没干净切换到新版本。 历史版本残留会污染新版解析:如果旧版把某个 view 声明成 tree view、新版改成了 webview view,升级后 VSCode 可能仍按旧的 tree view 解析,但运行时新代码注册的是 `WebviewViewProvider`,类型对不上 → 报 `There is no data provider registered that can provide view data`,点活动栏图标打不开面板。 所以**每次安装/升级扩展,都必须先彻底清理历史残留,再装最新版**,不能只覆盖安装。这是真实排查过的坑(Resource Monitor v0.2.1 升级后点图标无反应,根因就是 0.1.0/0.2.0/0.2.1 三个版本目录同时残留,0.1.0 的 tree view 声明污染了 view 类型解析)。 ## 核心原则 1. **默认装最新版**:从对应仓库的 GitHub Release 取最新 tag 的 vsix(用户约定「发布/最新版默认指 GitHub Release」,不是 Marketplace / Open VSX,除非用户明确指定)。 2. **强制走清理流程**:哪怕用户只说「装一下」「升级一下」,也要执行下方的卸载 + 删残留 + 清缓存,不能直接覆盖装。 3. **reload 由用户做**:清理重装后,`reload window` / 重启 VSCode 这一步必须在 GUI 里做,Agent 代不了,要明确提示用户。 4. **装项目扩展前先核对版本号一致性**:当装的是**正在开发的项目扩展**(Agent 手上有本地代码目录、能读 `package.json`)时,下载 Release vsix 前先比 GitHub Release 最新 tag 与本地 `package.json` 的 `version` 是否一致——一致才从 Release 装;不一致不盲目装,先排查(忘了发版 / 发版失败 / 本地版本号没跟上 / Release 与本地代码不同步)。装别人的扩展(无本地代码)不适用此条。 ## 前置确认:先搞清四件事再动手 - **publisher.name**:从 vsix 内的 `package.json` 读 `publisher` + `name`(如 `xhqing.resource-monitor`),或从 GitHub Release asset 名 / 仓库名推断。后续所有命令都要用这个 id。 - **VSCode 变体**:用户实际用哪个?`code` / `code-insiders` / `cursor` / `windsurf` 等,每个有独立的扩展目录和缓存路径。用 `which code code-insiders cursor windsurf 2>/dev/null` + `<cli> --list-extensions --show-versions | grep <name>` 确认扩展实际装在哪个变