1. Windows 上跑 Claude Code 到底卡在哪:Node.js、npm 与 PowerShell 执行策略
很多人第一次在 Windows 上装 Claude Code,卡住的地方往往不是 Claude Code 本身,而是它依赖的那条链路:Node.js 装没装对、npm 能不能在 PowerShell 里跑、脚本执行策略放不放行。这三个环节任意一个出问题,你看到的报错都长得差不多——一串红字,末尾跟着npm.ps1或者禁止运行脚本,然后你就不知道该从哪下手了。
Claude Code 是什么?简单说,它是 Anthropic 官方出的命令行编程助手,能在终端里直接读你的项目文件、改代码、跑命令。适合谁?适合习惯在终端里干活、想让 AI 直接操作本地代码库的开发者。它不是一个网页聊天框,而是一个跑在你机器上的 CLI 工具,所以对本地环境有要求。
Windows 上的坑集中在三处。第一,Node.js 版本太老,Claude Code 要求 Node 18 以上,最好直接上 LTS。第二,PowerShell 默认的执行策略是Restricted,意思是任何.ps1脚本都不让跑,而 npm 在 Windows 上恰恰是通过npm.ps1来执行的,于是你敲npm install就炸了。第三,网络问题,npm 默认源在国内访问经常超时,装到一半断掉。
我试过在一台全新的 Windows 11 上从零走一遍,整个过程其实十分钟能搞定,前提是你知道每一步在干什么。下面我按真实操作顺序拆开讲,命令都可以直接复制。核心思路是:先把 Node.js 和 npm 这条地基打稳,再处理 PowerShell 的执行策略,最后装 Claude Code 并配置好模型接入。每一步都有验证动作,做完一步确认一步,不要一口气全敲完再回头找错。
这一节你先记住三个关键词:Node.js 版本、PowerShell 执行策略、npm 源。后面所有报错基本都能归到这三类里。
2. 装 Claude Code 前的地基:Node.js LTS 与 npm 环境准备
Claude Code 是 npm 包,没有 Node.js 就没有 npm,没有 npm 就装不了它。所以第一步永远是 Node.js。
Windows 上装 Node.js 最省事的方式是用 winget,这是 Windows 自带的包管理器,Win10 较新版本和 Win11 都有。打开 PowerShell,直接敲:
winget install OpenJS.NodeJS.LTS这条命令会拉取 Node.js 的 LTS 版本并安装。装完之后,必须重新开一个 PowerShell 窗口,因为环境变量是在新会话里才生效的。很多人装完在当前窗口敲node -v发现找不到命令,就是没重开窗口。
重开之后验证:
node -v npm -v正常的话会分别输出类似v20.x.x和10.x.x的版本号。如果node -v有输出但npm -v报错,那大概率就是下一节要讲的 PowerShell 执行策略问题。
如果你不想用 winget,也可以去 Node.js 官网下.msi安装包,一路下一步,效果一样。winget 的好处是升级方便,以后winget upgrade就能更新。
Node.js 版本这块有个硬要求:Claude Code 需要 Node 18 及以上。如果你机器上原本有个老版本 Node,建议先卸掉再装 LTS,避免多版本打架。用where.exe node可以看当前用的是哪个路径下的 node,确认没有残留的旧版本。
npm 源的问题也在这里一起处理。默认源registry.npmjs.org在国内访问不稳定,装包时容易卡住或者超时。换成国内镜像:
npm config set registry https://registry.npmmirror.com验证换源成功:
npm config get registry输出应该是https://registry.npmmirror.com。这一步不是必须的,如果你网络本来就通,可以跳过。但如果你装 Claude Code 时卡在sill fetch或者超时,回来换源基本能解决。
到这里地基就打好了:Node.js LTS 装好、npm 可用、源也换好了。接下来处理 Windows 上最容易绊倒人的那个报错。
3. 可复制配置:PowerShell 执行策略、Claude Code 安装与 settings.json
这一节是全文的核心操作区,包含三段可复制的配置:PowerShell 执行策略、Claude Code 安装命令、以及 Claude Code 的 settings.json 配置文件。
先说 PowerShell 执行策略。当你在 PowerShell 里敲npm install看到这样的报错:
npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。这不是 npm 坏了,是 PowerShell 不让跑脚本。解决办法是改执行策略。以管理员身份打开 PowerShell,先看当前策略:
Get-ExecutionPolicy如果返回Restricted,就改成RemoteSigned:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUserRemoteSigned的意思是:本地写的脚本可以直接跑,从网上下载的脚本需要有签名。对日常开发来说这个级别够用,也比直接设成Unrestricted安全。-Scope CurrentUser表示只对当前用户生效,不需要动系统级设置。
改完再验证一次Get-ExecutionPolicy,应该返回RemoteSigned。然后关掉管理员窗口,用普通 PowerShell 继续。
现在装 Claude Code:
npm install -g @anthropic-ai/claude-code-g是全局安装,装完之后claude命令在任何目录都能用。装完验证:
claude --version有版本号输出就说明装好了。
接下来是配置。Claude Code 的配置分两个文件,位置都在你的用户目录下。第一个是.claude.json,用来跳过首次引导。打开用户目录(在 PowerShell 里敲echo $HOME能看到路径,通常是C:\Users\你的用户名),找到或新建.claude.json,加上:
{ "hasCompletedOnboarding": true }第二个是settings.json,放在.claude目录下,也就是C:\Users\你的用户名\.claude\settings.json。这个文件负责模型接入配置:
{ "env": { "ANTHROPIC_AUTH_TOKEN": "sk-xxxxxxxxxxxxxxxx", "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_MODEL": "claude-sonnet-4-5" } }这里三个字段要一起配齐,缺一个都可能连不上。ANTHROPIC_AUTH_TOKEN是你的 API Key,ANTHROPIC_BASE_URL是接口地址,ANTHROPIC_MODEL指定用哪个模型。Key 的获取在 TaoToken 控制台里生成,地址是 https://taotoken.net/api-keys ,生成后复制进来替换掉sk-xxxxxxxxxxxxxxxx。
如果你用的是 Claude Code 的 coding plan 场景,Base URL 和 Key 的对应关系要确认清楚,别把对话接口的 Key 填到 coding 接口上。TaoToken 的 coding plan 入口在 https://taotoken.net/coding-plan ,里面有对应的接入说明。
配置文件的目录结构长这样:
C:\Users\你的用户名\ ├── .claude.json └── .claude\ └── settings.json注意.claude.json在用户目录根下,settings.json在.claude子目录里,两个位置别搞混。这是最容易出错的地方之一。
4. 验证请求:从 claude 启动到成功返回结果
配置写完,怎么确认真的能跑通?分三步验证。
第一步,重开一个 PowerShell 窗口,敲:
claude如果配置正确,你会看到 Claude Code 的交互界面启动,而不是报错退出。如果它提示你登录或者走引导流程,说明.claude.json里的hasCompletedOnboarding没生效,检查一下文件路径和 JSON 格式,JSON 里不能有多余的逗号。
第二步,在 Claude Code 界面里输入一句简单的话,比如让它解释当前目录下的某个文件。这时候它会真正发起一次 API 请求。如果 Base URL、Key、Model 三个字段都对,你会看到它开始读取文件并返回分析结果。
第三步,看返回内容是否正常。如果返回的是模型生成的文本,说明整条链路通了:PowerShell 能跑 claude 命令、Claude Code 能读到 settings.json、请求能打到 Base URL、Key 验证通过、模型正常响应。
如果这一步失败,报错信息会告诉你卡在哪。常见的几种:
401或authentication_error:Key 不对或者没填。检查ANTHROPIC_AUTH_TOKEN是不是完整的,有没有多余空格。
model not found:ANTHROPIC_MODEL填的模型名不对。确认你用的接入方支持这个模型 ID。
连接超时:Base URL 写错了,或者网络到不了。确认ANTHROPIC_BASE_URL是https://taotoken.net/api,注意结尾不要多加斜杠。
验证通过之后,你就可以在任意项目目录下敲claude直接用了。它会以当前目录为工作区,读文件、改代码都在这个范围内。
有一点要提醒:Claude Code 会实际修改你的文件,第一次用建议在一个测试项目或者 git 仓库里跑,改坏了能回滚。别一上来就在生产代码上让它大改。
5. 本篇常见错排查:npm.ps1 禁止运行、401、local proxy failed 与 reading choices
这一节把 Windows 上装 Claude Code 最常撞到的几个报错集中过一遍,每个都给定位思路和解决动作。
报错一:npm.ps1,因为在此系统上禁止运行脚本
这是最高频的。根因是 PowerShell 执行策略为Restricted。解决就是第 3 节里的Set-ExecutionPolicy RemoteSigned -Scope CurrentUser。注意要用管理员身份开 PowerShell 才能改。改完重开窗口。如果改完还报,检查是不是改到了错误的 Scope,用Get-ExecutionPolicy -List看各层级的策略。
报错二:401或invalid api key
Key 的问题。三种可能:Key 复制时带了空格或换行;Key 已经失效或被删;Key 和 Base URL 不匹配,比如拿 A 平台的 Key 去连 B 平台的地址。解决:重新在 https://taotoken.net/api-keys 生成一个,完整复制,确认settings.json里ANTHROPIC_AUTH_TOKEN的值前后没有空格。JSON 文件里字符串要用英文双引号。
报错三:local proxy failed或连接被拒绝
这个通常出现在你本地配了什么网络工具,或者 Base URL 指向了一个本地端口但那个服务没起来。检查ANTHROPIC_BASE_URL是不是写成了http://localhost:xxxx之类。正常应该指向https://taotoken.net/api。如果你之前手动设过HTTP_PROXY/HTTPS_PROXY环境变量,用echo $env:HTTPS_PROXY看一下,有的话清掉:
Remove-Item Env:\HTTPS_PROXY -ErrorAction SilentlyContinue Remove-Item Env:\HTTP_PROXY -ErrorAction SilentlyContinue报错四:reading 'choices'或cannot read properties of undefined
这类报错说明请求发出去了,但返回的结构不是 Claude Code 期望的格式。常见原因是 Base URL 指向了一个 OpenAI 格式的接口,而 Claude Code 要的是 Anthropic 格式。确认你的接入地址是 Anthropic 兼容的。TaoToken 的 API 地址https://taotoken.net/api是 Anthropic 兼容格式,直接填这个。
报错五:OAuth相关或反复要求登录
如果你看到 OAuth 登录提示,说明 Claude Code 在走官方登录流程,而不是用你配置的 Key。检查settings.json是否放在了正确位置C:\Users\你的用户名\.claude\settings.json,以及 JSON 格式是否合法。可以用Get-Content $HOME\.claude\settings.json | ConvertFrom-Json验证 JSON 能不能解析,报错就说明格式有问题。
排查的通用思路:先确认claude --version能跑(说明安装没问题),再确认settings.json能被解析(说明配置没问题),最后看请求报错的具体 HTTP 状态码(说明接入有没有通)。一层一层往下剥,别跳步。
6. 长期编码与 Agent 场景:把 Claude Code 接进日常工作流
装好只是开始,真正省时间的是把它接进日常编码流程。Claude Code 的定位是终端里的编程 Agent,它和编辑器里的补全插件不一样——它能跨文件操作、能跑命令、能根据你的描述改一整个模块。
如果你打算长期用它做编码和 Agent 任务,建议走 coding plan 这条路,入口在 https://taotoken.net/coding-plan 。coding plan 针对的就是高频编码场景,比按次调用更划算,也更适合让 Claude Code 长时间挂着跑任务。
日常用法上,几个实用习惯:
在项目根目录启动claude,它会以这个目录为工作区。让它改代码前,先确保项目在 git 管理下,改完git diff一眼就能看出它动了什么。让它跑测试、跑构建这类命令时,它会实际执行,所以别在敏感环境里放开权限。
模型选择上,settings.json里的ANTHROPIC_MODEL可以按任务换。复杂重构用能力强的模型,简单改动用快的。换模型就是改这一个字段,改完重开claude生效。
如果你同时用多个接入方,可以准备多份 settings 配置,用的时候切换文件内容。但注意 Claude Code 读的是固定路径的settings.json,所以切换靠改文件内容,不是靠命令行参数。
想先试试模型对话效果、确认接入没问题,可以走 https://taotoken.net/models 这个入口,先在对话界面里验证 Key 和模型可用,再回到 Claude Code 里配。这样能把「接入问题」和「Claude Code 配置问题」分开排查,省得两头猜。
最后一句实在话:Windows 上这套流程的难点从来不是 Claude Code 本身,而是 Node.js、npm、PowerShell 这三样东西的默认状态不友好。把执行策略和源这两处一次性配好,后面基本不会再被环境问题打断。配置文件和 Key 的管理入口都在 https://taotoken.net/api-keys ,需要重新生成或查看用量时去那里。