💡 更多技术分享,欢迎访问我的博客:叁木の小屋
问题概述
近期 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.51 | 2/24 09:49 | ❌ 问题版本 |
| v2.1.52 | 2/24 14:49 | ✅ 已修复 |
| v2.1.53 | 2/25 08:22 | ❌ 问题版本 |
| v2.1.55 | 2/25 11:24 | ❌ 问题版本 |
| v2.1.56 | 2/25 14:40 | ✅ 已修复 |
问题表现
- VSCode 启动后 Claude 扩展激活失败
- 点击右上角 Claude 图标弹出错误:
command 'claude-vscode.editor.openLast' not found - 即使重新安装插件也无法解决问题
根本原因分析
根据用户报告的详细日志,问题的根源在于构建时路径泄漏:
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'
技术细节
- 构建路径硬编码:扩展代码中包含了一个 Linux CI/CD 构建环境的绝对路径(
/home/runner/work/...) createRequire()调用失败:这个路径被传递给 Node.js 的Module.createRequire()函数- Windows 无法识别:Windows 系统无法将这个 Linux 路径解析为有效的文件 URL
- 激活崩溃:扩展在初始化阶段就抛出异常,导致所有命令都未能注册
为什么重装无效
重装无法解决问题,因为问题不是安装损坏,而是扩展运行时代码本身包含了错误的路径。这是一个打包/构建流程的 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 流程的健壮性检查——毕竟,魔鬼往往藏在细节里。
感谢阅读!如果这篇文章对你有帮助,欢迎分享给遇到同样问题的朋友。我们下篇文章见!👋