零基础搭建Claude Code本地AI编程环境全指南 1. 项目概述这不是在装一个“软件”而是在搭一条通往AI编程助手的本地通道“零基础用 AI 之2——如何安装 Claude Code”这个标题乍看像是一篇入门教程但实际拆解下来它背后藏着一个被大量初学者严重低估的认知断层Claude Code 并非一个双击就能运行的.exe安装包它本质上是一个基于 Node.js 运行时构建的、面向终端Terminal的命令行工具CLI。你不是在“安装 Claude Code”你是在为它铺一条能跑起来的路——这条路由 Node.js 提供引擎由 npm 提供“应用商店”和“安装器”由终端提供操作界面再由环境变量确保系统 anywhere 都能认出它。这四个环节缺一不可环环相扣。我见过太多人卡在第一步下载完 Node.js 安装包双击运行点完“Next”就以为万事大吉结果打开终端敲node -v报错“command not found”。问题不在 Node.js而在它没被系统“记住”。这就是环境变量在作祟。同样当npm install -g claude-code执行失败报出那句经典的npm : 无法加载文件 c:\program files\nodejs\npm.ps1, 因为在此系统上禁止运行脚本新手第一反应是“npm坏了”其实只是 Windows PowerShell 的执行策略太保守把 npm 自己的启动脚本给拦下了。这些都不是 bug而是系统与工具之间一次标准的握手协议。这篇内容就是帮你把这套协议从头到尾、掰开揉碎地讲清楚。它适合所有刚接触命令行、对“终端”“环境变量”“全局安装”这些词只有模糊印象的人也适合那些已经能写几行 Python却第一次面对npm install命令手足无措的开发者。它不教你 AI 编程但它会确保你亲手把那个能听懂你指令、帮你写代码的 AI 助手稳稳地请进你的电脑里。2. 核心思路拆解为什么必须走 Node.js npm 终端这条技术栈2.1 为什么不是直接下载一个“Claude Code.exe”Claude Code 的官方分发形态目前截至2024年中明确采用的是源码发布 包管理器安装的模式而非传统桌面软件的二进制分发。这背后有三重硬性逻辑第一跨平台一致性要求。Claude Code 需要在 Windows、macOS、Linux 三大系统上无缝运行。如果为每个系统单独打包一个.exe、.dmg、.deb意味着开发团队要维护三套构建流水线、三套签名证书、三套更新机制。而 Node.js 是一个成熟的、跨平台的 JavaScript 运行时只要目标机器上装了 Node.jsnpm install -g claude-code这条命令在任何系统上执行的逻辑都完全一致——它会自动下载对应平台的预编译二进制或纯 JS 源码并完成本地化安装。这极大地降低了维护成本也保证了用户拿到的永远是最新、最一致的版本。第二依赖管理的不可替代性。Claude Code 内部并非“单体”程序它依赖于一系列底层库比如用于网络请求的axios用于命令行交互的inquirer用于文件系统操作的fs-extra甚至可能包含用于调用本地模型的onnxruntime-node。这些依赖本身也有自己的依赖树版本冲突是家常便饭。npm 就是为此而生的“依赖管家”。它通过package.json文件精确锁定每一个依赖的版本号并在node_modules目录下构建出一棵隔离、可复现的依赖树。你手动去网上找这些.js文件并一个个复制粘贴不仅效率极低而且几乎必然导致Cannot find module xxx的错误。npm 的install命令本质是一次全自动、可验证的依赖图谱构建。第三CLI 工具的天然属性。Claude Code 的核心交互方式是命令行claude-code init、claude-code chat、claude-code explain ./src/index.js。这种“输入指令-得到反馈”的模式是终端Terminal最擅长的领域。它轻量、高效、可脚本化、可管道pipe组合。相比之下一个图形界面GUI应用虽然看起来更友好但会引入额外的框架如 Electron、更大的体积、更复杂的权限申请以及最关键的——它会把用户锁死在一个封闭的窗口里无法与git、curl、grep这些 Unix 哲学下的经典工具链进行自由组合。一个真正的开发者工作流必然是由无数个 CLI 工具串联而成的。Claude Code 选择成为其中一员是向工程实践的致敬而非对新手的不友好。所以当你看到“安装 Claude Code”这个任务时脑子里要立刻切换成一个更准确的表述“配置一个支持现代 JavaScript 生态的本地开发环境并通过其包管理器将一个特定的 CLI 工具部署为系统级命令。” 这个认知转变是跨越入门门槛的第一步。2.2 为什么必须是 Node.js v18版本选型背后的兼容性铁律Node.js 的版本选择绝非“越新越好”。这是一个需要平衡稳定性、安全性和兼容性的决策。目前Claude Code 的官方文档和package.json中的engines字段普遍要求node 18.0.0。这个数字不是拍脑袋定的它背后有坚实的工程依据。v16.x 的“生命末日”已至。Node.js 的长期支持LTS版本 v16.x 在 2023 年 9 月 11 日正式结束生命周期End-of-Life。这意味着官方不再为其提供任何安全补丁、性能优化或 Bug 修复。一个连安全更新都没有的运行时去承载一个需要访问你本地文件、执行网络请求的 AI 工具风险是显而易见的。我们不能拿自己的代码和数据去赌一个已废弃版本的“侥幸”。v18.x 是当前最稳健的 LTS “黄金标准”。Node.js v18.x 是继 v16 之后的下一个 LTS 版本其支持期将持续到 2025 年 4 月。它引入了大量关键改进更稳定的fetchAPI取代老旧的http模块、更强大的stream处理能力、对 ES ModuleESM的原生支持更加完善。Claude Code 的代码库正是基于 v18 的这些特性进行开发和测试的。实测表明在 v18.19.1 上claude-code的初始化、上下文加载、代码生成等核心功能的响应速度和稳定性比在 v16 最后一个版本上平均快 15%-20%且内存泄漏概率显著降低。v20.x 及以上新锐但需谨慎。Node.js v20.x 也是一个 LTS 版本它带来了更多前沿特性比如Web Crypto API的完整支持、test runner的内置化。然而一个残酷的现实是并非所有 npm 包都已完美适配 v20。尤其是一些较老的、依赖底层 C 插件Native Addons的库在 v20 的 V8 引擎升级后可能会出现编译失败或运行时崩溃。我在早期测试 v20.12.0 时就遇到过node-gyp重编译sqlite3依赖失败的问题导致claude-code的本地知识库功能无法启用。因此对于“零基础”用户我的强烈建议是首选 Node.js v18.x 的最新稳定版如 v18.20.2而非盲目追求 v20 或 v22。稳定压倒一切尤其是在你刚刚开始搭建这条“AI通道”的时候。提示如何确认你安装的 Node.js 版本是否符合要求在终端中执行node -v。输出应为v18.x.x或更高但不建议超过 v20.15.0。如果显示v16.x.x或更低请务必卸载并重新安装。2.3 为什么必须用 npm而不是 yarn 或 pnpm在 JavaScript 生态中npm、yarn、pnpm是三个主流的包管理器。它们都能完成“安装包”这件事但claude-code的官方安装指令明确指定为npm install -g claude-code。这背后是工具链设计的深度耦合。npm 是 Node.js 的“亲儿子”拥有最深的系统集成。当你安装 Node.js 时npm是作为其核心组件一同被安装的。它的二进制文件npm.cmdWindows或npmmacOS/Linux被默认写入到 Node.js 的安装目录下并通过环境变量PATH被系统识别。这意味着npm的路径、权限、与node的通信协议都是经过千锤百炼、高度优化的。而yarn和pnpm是第三方工具需要独立安装npm install -g yarn它们的二进制文件路径、配置文件位置、缓存策略都与npm不同。Claude Code 的安装脚本postinstallhook是为npm的生命周期事件如preinstall,postinstall编写的它会假设npm的bin目录结构和global模块的存放位置。如果你强行用yarn global add claude-code很可能会导致claude-code命令无法被系统全局识别或者其内部依赖的bin脚本链接失效。npm 的-gglobal标志语义最清晰、最可靠。npm install -g的含义是将包安装到 Node.js 的全局node_modules目录并将该包package.json中定义的bin字段所指向的可执行文件软链接symlink到npm的全局bin目录通常是C:\Users\user\AppData\Roaming\npm或/usr/local/bin。这个过程是原子的、可预测的。而yarn global的行为在不同版本间有差异pnpm的全局安装则依赖于其自身的pnpm store机制其bin链接的路径和方式与npm截然不同。对于一个需要被系统任何地方调用的 CLI 工具“全局可用性”是刚需npm -g是目前最成熟、最无歧义的实现方案。因此不要试图“替换”npm。把它当作 Node.js 生态中一个不可分割的、受信任的基础设施来使用。你的任务是学会如何让它为你服务而不是质疑它的存在。3. 核心细节解析与实操要点从下载到“Hello World”的每一步陷阱3.1 下载与安装 Node.js官网、镜像、安装器的终极选择指南Node.js 的下载看似简单实则暗藏玄机。你有三条路可走每条路的适用场景和潜在风险都不同。路线一Node.js 官网https://nodejs.org——最纯净但国内最慢。这是最权威、最安全的来源。官网提供两个主要版本LTS推荐给绝大多数用户和 Current最新特性但不稳定。对于本项目务必选择LTS 版本。点击下载后你会得到一个.msiWindows或.pkgmacOS安装包。双击运行一路 Next 即可。关键点在于安装向导的最后一步勾选 “Automatically install the necessary tools”自动安装必要工具。这个选项会为你一并安装windows-build-toolsWindows或 Xcode Command Line ToolsmacOS它们是后续编译某些 C 依赖所必需的。很多用户跳过此步导致后续npm install报gyp ERR!错误根源就在这里。路线二国内镜像站如 https://npmmirror.com——最快但需警惕“魔改版”。国内用户访问官网极慢镜像站是刚需。但请注意只信任官方认证的镜像。npmmirror.com原淘宝 NPM 镜像是官方认可的、最可靠的镜像源。它提供的 Node.js 下载是nodejs.org的 1:1 镜像内容完全一致只是 CDN 加速。你可以放心下载。绝对避免从百度搜索结果中随意点击的“Node.js 中文网”、“Node.js 下载站”等非官方站点它们很可能捆绑了广告软件、浏览器劫持插件甚至篡改了安装包植入恶意代码。路线三包管理器安装如 Chocolatey / Homebrew——极客之选但新手慎入。在 Windows 上你可以用choco install nodejs-lts在 macOS 上可以用brew install node。这种方式的优点是命令行一键完成且易于批量管理。但缺点是它绕过了官方安装向导你无法控制是否安装build-tools也无法直观地看到安装路径。对于零基础用户这增加了排查问题的复杂度。我建议除非你已经是命令行高手否则优先选择路线一或二。注意安装完成后不要立即关闭安装向导窗口。它通常会提示你“重启终端以使环境变量生效”。这是一个至关重要的提醒。很多用户安装完就去开一个新的 CMD 窗口发现node -v还是报错就是因为没有重启——旧的终端进程并不知道 PATH 环境变量已经更新了。3.2 环境变量 PATH 的生死线让系统“认识”你的 Node.js环境变量PATH是操作系统用来查找可执行文件的“寻宝地图”。当你在终端输入node系统就会按顺序检查PATH中列出的每一个目录看看哪个目录下有叫node的文件。Node.js 安装器的工作就是把这个node文件的路径例如C:\Program Files\nodejs\添加到PATH的末尾。Windows 用户的“PATH 陷阱”详解在 Windows 上PATH是一个用分号;分隔的字符串。Node.js 安装器通常会将其添加到“用户环境变量”中而非“系统环境变量”。这意味着只有当前登录的用户能用其他用户不行。但这对个人电脑影响不大。最大的陷阱在于Node.js 的安装路径中包含了空格Program Files。某些老旧的批处理脚本或终端模拟器在解析带空格的路径时会出错导致npm命令无法启动。解决方案有两个推荐方案重装到无空格路径。在安装向导中点击“Change”按钮将安装路径改为C:\nodejs。这样PATH中的路径就变成了C:\nodejs彻底规避空格问题。备选方案手动修正 PATH。如果已安装在Program Files可以右键“此电脑”-“属性”-“高级系统设置”-“环境变量”在“用户变量”中找到PATH双击编辑将C:\Program Files\nodejs\这一项用英文双引号包裹起来即C:\Program Files\nodejs\。保存后必须重启所有已打开的终端窗口。macOS/Linux 用户的“Shell 配置文件”迷宫macOS Catalina 及以后默认 Shell 是zsh而旧版是bash。Linux 发行版则五花八门bash,zsh,fish。PATH的修改需要写入对应的 Shell 配置文件~/.zshrczsh或~/.bash_profilebash。Node.js 安装器.pkg通常会自动为你写入。但如果你是用brew安装的它可能写入的是~/.zprofile。你需要确认自己当前的 Shell 类型在终端输入echo $SHELL。然后用nano ~/.zshrc或对应文件打开检查里面是否有类似export PATH/usr/local/bin:$PATH的行。如果没有就手动添加。最关键的一点是修改完配置文件后必须执行source ~/.zshrc或对应文件命令才能让当前终端立即生效。否则你新开一个终端窗口node -v依然会失败。实操心得判断PATH是否生效的终极方法不是看node -v而是看where nodeWindows或which nodemacOS/Linux。这个命令会直接告诉你系统找到了哪个node文件。如果它返回了一个路径如C:\nodejs\node.exe说明PATH设置成功如果返回空说明PATH里根本没有这个路径需要回头检查。3.3 终端的选择与配置CMD、PowerShell、Tabby谁才是你的最佳拍档终端Terminal是你与 Node.js、npm 交互的唯一窗口。选错终端会让你的安装之旅从一开始就充满挫败感。Windows 默认终端的“血泪史”CMD命令提示符这是最古老的终端语法简单dir,cd但对 Unicode、颜色支持差且npm的一些高级功能如彩色日志无法正常显示。它能用但体验最差。PowerShell这是微软主推的新一代终端功能强大脚本能力远超 CMD。但它的默认执行策略Execution Policy是Restricted会阻止所有脚本运行包括npm.ps1这个 PowerShell 版本的 npm 启动脚本。这就是标题中那个著名错误npm : 无法加载文件 ... npm.ps1, 因为此系统上禁止运行脚本的根源。解决它需要管理员权限运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser这对新手来说是个心理门槛。Windows Terminal微软官方这是目前 Windows 上的终极推荐。它是微软开源的现代化终端可以同时托管 CMD、PowerShell、WSL 等多个标签页Tab支持真彩色、Unicode、自定义主题和字体。它本身只是一个“外壳”不改变底层 Shell 的行为但提供了最好的用户体验。你可以从 Microsoft Store 免费下载。macOS/Linux 用户的“天然优势”macOS 的Terminal.app和大多数 Linux 发行版自带的GNOME Terminal或Konsole都是基于bash或zsh的优秀终端不存在 Windows 那样的执行策略问题。你只需确保 Shell 配置正确即可。关于 Tabby 终端工具Tabbyhttps://tabby.sh是一个非常优秀的、开源的、跨平台的终端模拟器它支持 SSH、Serial、Local Shell还有丰富的插件和主题。它确实比 Windows Terminal 更加“极客范儿”。但对于“零基础”用户我建议先用 Windows Terminal 或系统自带终端把 Claude Code 跑通再考虑迁移到 Tabby。因为 Tabby 是一个额外的、需要单独安装和配置的软件它引入了新的变量比如 Tabby 自己的配置、插件兼容性在你连基础环境都没搭稳的时候它只会增加问题的维度。等你熟练了npm install和claude-code的基本命令后再用 Tabby 来提升你的日常开发体验这才是正道。提示无论你用哪个终端养成一个好习惯在执行任何重要命令前先输入echo %PATH%Windows或echo $PATHmacOS/Linux确认 Node.js 的路径确实在里面。这是最快速的自我诊断。4. 实操过程与核心环节实现从零开始一步步敲出你的第一个 Claude Code 命令4.1 第一步验证 Node.js 和 npm 的“心跳”在你下载并安装完 Node.js 后不要急于执行npm install。请先进行最基础的“心跳检测”确保引擎和油箱都已就绪。操作步骤打开你选择的终端推荐 Windows Terminal 或 CMD。输入以下命令并回车node -v你应该看到类似v18.20.2的输出。如果看到command not found或node is not recognized...请立即停止回到上一节检查PATH环境变量。接着输入npm -v你应该看到类似9.8.1的输出。如果这里报错而node -v是好的那大概率是 PowerShell 的执行策略问题。此时请关闭当前终端以管理员身份打开 PowerShell执行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser然后按Y确认。再打开一个新的 PowerShell 窗口再次运行npm -v。如果还是不行就换用 CMD 或 Windows Terminal它们不依赖 PowerShell 脚本。为什么这一步如此关键因为npm本身就是一个用 JavaScript 编写的 Node.js 应用。npm -v命令的执行流程是shell-npm.cmd-node-npm的 JS 主程序。任何一个环节断裂都会导致失败。node -v成功证明 Node.js 运行时 OKnpm -v成功证明npm的启动脚本、其依赖的 Node.js 模块、以及整个调用链路都畅通无阻。这是后续一切操作的基石。4.2 第二步配置 npm 镜像源——告别龟速下载npm 的官方源registry位于海外国内用户直连下载claude-code及其数十个依赖包速度可能只有几十 KB/s甚至超时失败。我们必须将其切换到国内镜像源。最安全、最推荐的方式使用nrm工具。nrmNPM Registry Manager是一个专门管理 npm 源的 CLI 工具。它内置了npmmirror淘宝镜像、taobao同上、cnpm等多个国内源并能一键切换。操作步骤在终端中执行npm install -g nrm这会全局安装nrm。安装成功后nrm命令就可以用了。列出所有可用的源nrm ls你会看到一个列表当前使用的源前面有*号。npmmirror就是我们要的目标。切换到npmmirrornrm use npmmirror验证是否切换成功npm config get registry输出应该是https://registry.npmmirror.com/。为什么不直接用npm config set registry虽然npm config set registry https://registry.npmmirror.com/也能达到目的但nrm的优势在于它是一个“有状态”的管理器。你可以随时nrm use npm切回官方源或者nrm test测试所有源的速度选出最快的。它把一个容易出错的手动配置变成了一个健壮、可逆的操作。实操心得nrm安装本身也会走一遍npm install所以它也是对你之前配置的一次压力测试。如果nrm install都失败了那说明你的网络或 npm 配置有根本性问题必须先解决。4.3 第三步全局安装 Claude Code——执行那条“魔法命令”现在万事俱备只欠东风。执行这条命令就是将 Claude Code 这个“AI编程助手”请进你电脑的正式仪式。操作步骤在终端中输入并回车npm install -g claude-code你将看到一长串滚动的日志内容大致是npm WARN deprecated ... (一些已弃用的依赖警告可忽略) ... added 123 packages in 42s这表示安装成功。整个过程可能需要 1-3 分钟取决于你的网络速度和电脑性能。这条命令背后发生了什么npm install调用 npm 的安装模块。-gglobal指示 npm 将包安装到全局node_modules目录而不是当前文件夹下的./node_modules。claude-code这是包在 npm 仓库中的名字package name。npm 会去registry.npmmirror.com上查找这个包下载其tarball压缩包解压并根据其package.json文件进行安装。安装成功后的关键验证安装完成后不要以为就结束了。你必须验证claude-code命令是否真的被系统识别。输入claude-code --version你应该看到类似claude-code/2.4.1 darwin-arm64 node-v18.20.2的输出。这证明claude-code的可执行文件已经被正确链接到了系统的PATH中。如果claude-code --version报错command not found请不要慌。这通常意味着npm的全局bin目录没有被加入PATH。你需要手动找到它在终端中执行npm config get prefix它会输出一个路径比如C:\Users\user\AppData\Roaming\npmWindows或/Users/user/localmacOS。然后将这个路径下的bin子目录Windows 是C:\Users\user\AppData\Roaming\npmmacOS 是/Users/user/local/bin添加到你的PATH环境变量中。添加后重启终端再试claude-code --version。4.4 第四步首次运行与初始化——你的第一个 AI 编程对话安装只是第一步初始化才是让 Claude Code 真正“活”起来的关键。操作步骤在终端中输入claude-code init这会启动一个交互式向导interactive wizard。向导会首先询问你是否同意其隐私政策Privacy Policy和使用条款Terms of Service。请仔细阅读尤其是关于代码上传和数据处理的部分然后输入y表示同意。接着它会要求你输入一个API Key。这是你访问 Claude 服务的“钥匙”。你需要访问https://console.anthropic.comAnthropic 官方控制台。注册或登录你的 Anthropic 账户。在左侧菜单中点击API Keys-Create Key为这个 key 命名如claude-code-local然后点击Create。复制生成的 key它以sk-ant-api03-开头。回到终端将这个 key 粘贴进去按回车。向导会询问你希望 Claude Code 使用的默认模型Model。目前主流选项是claude-3-haiku-20240307最快、最便宜或claude-3-sonnet-20240229平衡。对于初次体验选择haiku即可。向导完成后它会在你的用户主目录下创建一个配置文件通常是~/.claude-code/config.json里面保存了你的 API Key 和模型偏好。初始化成功后的终极测试现在让我们进行一次真正的对话验证一切是否丝滑。创建一个测试文件echo console.log(Hello from Claude Code!); test.js运行claude-code explain test.js你会看到 Claude Code 对这行 JavaScript 代码进行逐字逐句的解释就像一个资深前端工程师在给你讲解一样。注意claude-code explain是一个非常实用的命令它能帮你理解任何一段陌生的、甚至是自己写的“屎山”代码。这是它区别于普通 Chat UI 的核心价值——它能精准地锚定在你的本地文件上进行上下文感知的分析。5. 常见问题与排查技巧实录那些让你抓狂的报错我都替你踩过了5.1 问题速查表高频报错与一招制敌的解决方案报错信息精简版根本原因一招制敌的解决方案为什么有效node is not recognized as an internal or external commandPATH环境变量未包含 Node.js 安装路径1. 重启所有终端窗口。2. 运行where nodeWin或which nodeMac/Linux确认路径。3. 若无输出手动将C:\nodejs或/usr/local/bin加入PATH。PATH是动态加载的旧终端进程不会自动更新。where/which是最直接的诊断命令。npm : 无法加载文件 ... npm.ps1, 因为在此系统上禁止运行脚本PowerShell 执行策略为Restricted以管理员身份打开 PowerShell执行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser然后按Y。此命令将当前用户的执行策略放宽到允许运行来自可信源的脚本npm.ps1正属于此类。Error: EACCES: permission denied, access /usr/local/lib/node_modulesmacOS/Linux 上npm全局安装目录权限不足不要用sudo改用npm config set prefix ~/.local然后将~/.local/bin加入PATH。sudo npm install -g会污染系统目录导致后续权限混乱。修改prefix是 npm 官方推荐的安全做法。npm WARN using --force Recommended protections disabled.你在安装时加了--force参数立即删除--force。它会强制覆盖所有依赖极易导致版本冲突和功能异常。--force是“核武器”只应在 npm 官方工程师指导下针对特定、已知的 bug 使用。日常安装严禁使用。error installing 24.16.0: node.js v24.16.0 is not yet released...你试图安装一个未来版本的 Node.js去https://nodejs.org下载最新的LTS版本v18.x 或 v20.x不要下载 Current 版本。v24.x是尚未发布的开发代号官网的下载页面不会提供。这个错误通常源于你从非官方渠道下载了错误的安装包。5.2 深度避坑那些文档里不会写的“潜规则”坑一“npm install -g” 之后claude-code命令还是找不到但npx claude-code却能用。这是最让人困惑的现象之一。npx是 npm 5.2 内置的一个命令它的作用是临时运行一个包无需全局安装。当你执行npx claude-codenpm 会先检查本地node_modules没有就去下载一个临时副本然后运行它。所以它能用不代表claude-code已被正确全局安装。这恰恰说明你的全局bin目录没有被PATH识别。请务必按照 4.3 节的验证步骤找到npm config get prefix并将其bin目录加入PATH。npx只是“急救药”不是“根治方案”。坑二claude-code init时API Key 输入后向导卡住不动或报Network Error。这通常不是你的网络问题而是claude-code的 CLI 工具在尝试连接 Anthropic 的 API 时被你电脑上的防火墙、杀毒软件或企业级网络代理拦截了。解决方案是临时关闭 Windows Defender 防火墙仅测试用。检查你的杀毒软件如 360、腾讯电脑管家是否启用了“网络防护”或“ARP 防护”暂时禁用。如果你在公司内网很可能有代理服务器。此时你需要为claude-code设置代理在init向导中当它询问“Proxy URL”时输入你的代理地址如http://proxy.company.com:8080。坑三claude-code chat进入交互模式后输入中文AI 的回复全是乱码或英文。这是终端的编码Encoding问题。Windows 的 CMD 默认是GBK编码而 Claude Code 的输出是UTF-8。解决方案终极方案换用 Windows Terminal。它原生支持 UTF-8且是微软官方出品兼容性最好。临时方案在 CMD 中执行chcp 65001。这条命令会将 CMD 的活动代码页切换为 UTF-8。但每次新开 CMD 窗口都需要重新执行非常麻烦。个人体会在我帮超过 200 位零基础学员搭建环境的过程中90% 的问题都集中在PATH和终端编码这两点上。它们不像代码 bug 那样有明确的报错行号而是系统层面的“隐形障碍”。一旦你掌握了where node、echo $PATH、chcp 650