Skip to content
返回

opcode 运行终端命令时报错“command not found: npm”

后续:后来我发现在 opcode 里问 AI 跟在 Claude Code 的 CLI 里问似乎还是不太一样。而且,opcode 有两三个月没更新了,但是 Claude Code CLI 基本上每天都会发布两个小版本。

为了确保原汁原味,我现在都是直接使用 Claude Code CLI,而 opcode 成了我查看历史对话记录的工具。


问题

使用 opcode 时执行 npm 命令报错:

$ npm run dev
Exit code 127
(eval):1: command not found: npm

但在 macOS 终端里或者使用 Claude Code CLI 时,npm 命令都是正常可用的。

原因

macOS 的应用在启动时不会加载 .zshrc.zprofile 等配置文件,而我使用 nvm 管理 Node.js,nvm 初始化代码在 .zprofile 里,这就导致 opcode 里的终端环境找不到需要经过 .zprofile 初始化后才有的命令。

Claude Code CLI 是通过 macOS 的终端运行的,终端本身加载了这些配置文件,所以没有问题。

解决方案

在终端运行 open -a opcode 启动 opcode,就正常了,参考:opcode#269

Claude 给我提供了四个方案,但都有点复杂,结果还是我自己去 GitHub issue 里找到的这个简单实用的方案。

挺好,看来人类还是有用武之地的 😭

创建快捷方式

macOS 可以创建快捷方式以避免每次输入命令启动 opcode:

  1. 打开 macOS 自带的「自动操作」应用,创建类型选择“应用程序”
  2. 搜索“shell”,添加“运行 Shell 脚本”操作
  3. 脚本内容填写 zsh -l -c 'open -a opcode'
  4. 保存时命名为“启动 opcode”,然后将这个生成的应用程序放到 Dock 或桌面

分享这篇文章:

上一篇
记一次服务器被挖矿病毒入侵的经历
下一篇
Cherry Studio VS ChatBox