一个路径,搞崩 VSCode 的 Claude Code 插件

0 阅读4分钟

💡 更多技术分享,欢迎访问我的博客:叁木の小屋

问题概述

近期 Claude Code VSCode 扩展在 v2.1.51 版本开始出现了一个严重的 Windows 平台兼容性问题,导致插件无法正常激活,用户点击 Claude 图标时提示 command 'claude-vscode.editor.openLast' not found 错误。

更新(2026年2月25日):截止至发稿,Anthropic 已在 v2.1.56 版本中明确修复了此问题,Windows 用户可以直接更新到最新版本。(话说,两天内连着犯低级失误,第一天改好了第二天又出问题了,小声蛐蛐下😂,不过也确实要佩服这个更新速度,一天三更)

受影响版本

版本发布时间(UTC)状态
v2.1.49 及之前-正常工作
v2.1.512/24 09:49❌ 问题版本
v2.1.522/24 14:49✅ 已修复
v2.1.532/25 08:22❌ 问题版本
v2.1.552/25 11:24❌ 问题版本
v2.1.562/25 14:40✅ 已修复

问题表现

  1. VSCode 启动后 Claude 扩展激活失败
  2. 点击右上角 Claude 图标弹出错误:command 'claude-vscode.editor.openLast' not found
  3. 即使重新安装插件也无法解决问题

根本原因分析

根据用户报告的详细日志,问题的根源在于构建时路径泄漏

TypeError: The argument 'filename' must be a file URL object, file URL string,
or absolute path string. Received 'file:///home/runner/work/claude-cli-internal/
claude-cli-internal/build-agent-sdk/sdk.mjs'

技术细节

  1. 构建路径硬编码:扩展代码中包含了一个 Linux CI/CD 构建环境的绝对路径(/home/runner/work/...
  2. createRequire() 调用失败:这个路径被传递给 Node.js 的 Module.createRequire() 函数
  3. Windows 无法识别:Windows 系统无法将这个 Linux 路径解析为有效的文件 URL
  4. 激活崩溃:扩展在初始化阶段就抛出异常,导致所有命令都未能注册

为什么重装无效

重装无法解决问题,因为问题不是安装损坏,而是扩展运行时代码本身包含了错误的路径。这是一个打包/构建流程的 bug,不是用户端的问题。

解决方案

方案一:更新到最新版本(推荐) ✅

直接更新扩展到 v2.1.56 或更高版本即可:

# 方法一:VSCode 扩展面板更新
# 打开扩展面板 (Ctrl+Shift+X) → 搜索 "Claude Code" → 点击更新

# 方法二:命令行更新
code --update-extension anthropic.claude-code

以下方案为历史记录,供遇到类似问题的用户参考

在 v2.1.56 修复之前,用户曾采用以下临时方案:

方案二:回退到 v2.1.49

这是目前最可靠的解决方案:

# 1. 卸载当前版本
code --uninstall-extension anthropic.claude-code

# 2. 下载 v2.1.49 的 VSIX 文件
# 访问 https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code
# 点击 "Version History" 标签页,找到 2.1.49 版本并下载

# 3. 手动安装旧版本
code --install-extension anthropic.claude-code-2.1.49.vsix

# 4. 禁用自动更新(可选但推荐)
# 在 VSCode 设置中搜索 "extensions.autoUpdate" 并设置为 false

方案三:等待官方修复

Anthropic 团队已被通知此问题,预计会在后续版本中修复。 关注以下 GitHub issues 获取最新进展:

方案四:临时使用终端模式

如果不想回退版本,可以通过命令行直接使用 Claude Code:

# 在项目目录下运行
claude

验证修复

回退后,可以通过以下命令验证安装版本:

code --list-extensions --show-versions | findstr "claude-code"

总结

这是一个典型的跨平台构建路径泄漏问题,CI/CD 构建环境的绝对路径被错误地打包进了发布版本。此类问题在 Node.js 生态中时有发生,特别是在使用 createRequire 等 CJS/ESM 互操作 API 时。

给我们的一点启示:即便是 Anthropic 这样的顶尖 AI 公司,也会在构建流程中犯下"路径硬编码"这种低级错误。这提醒我们在日常开发中,发布生产环境前务必做好跨平台测试、代码审查和 CI/CD 流程的健壮性检查——毕竟,魔鬼往往藏在细节里。


感谢阅读!如果这篇文章对你有帮助,欢迎分享给遇到同样问题的朋友。我们下篇文章见!👋