wsl下使用npm,错误识别到了windows下的npm

这里写自定义目录标题

报错

codex

file:///mnt/d/PFiles/nvm/v22.22.2/node_modules/@openai/codex/bin/codex.js:107

throw new Error(

^

Error: Missing optional dependency @openai/codex-linux-x64. Reinstall Codex: npm install -g @openai/codex@latest

at findCodexExecutable (file:///mnt/d/PFiles/nvm/v22.22.2/node_modules/@openai/codex/bin/codex.js:107:9)

at file:///mnt/d/PFiles/nvm/v22.22.2/node_modules/@openai/codex/bin/codex.js:112:20

at ModuleJob.run (node:internal/modules/esm/module_job:325:25)

at async ModuleLoader.import (node:internal/modules/esm/loader:606:24)

at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5)

问题的根本原因:

WSL (Windows Subsystem for Linux) 有一个特性:默认会将 Windows 的系统环境变量(PATH)追加到 Linux 的 PATH 中。

因为你在 WSL 中没有配置自己的 Node.js,或者 WSL 的 Node 路径优先级不够高,导致你在 WSL 终端输入 codex 时,WSL 跨系统调用了你 D盘 Windows 版的 Node 和 npm 全局包。

Windows 版的 npm 安装时只会下载 Windows 的二进制依赖(windows-x64),但当这个脚本在 WSL 环境执行时,它检测到当前系统环境是 Linux,于是去寻找 Linux 的依赖包(linux-x64),自然找不到,从而报错。

要彻底解决这个问题,需要在 WSL 内部安装一个独立的 Linux 版 Node 环境,并确保 WSL 优先使用它。

下载并安装 nvm (以 v0.40.1 为例)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

让环境变量立即生效 (如果你用的是 zsh,请将 bashrc 换成 zshrc)

source ~/.bashrc

安装 Node 20

nvm install 20

切换到 Node 20

nvm use 20

将 Node 20 设置为 WSL 默认的 Node 版本(每次打开终端自动使用)

nvm alias default 20

下载并安装 nvm (以 v0.40.1 为例)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

让环境变量立即生效 (如果你用的是 zsh,请将 bashrc 换成 zshrc)

source ~/.bashrc

相关推荐
水饺编程3 小时前
第2章:Linux 基础,切换到超级用户
linux·c语言·汇编
便利店10243 小时前
系统活动一抓留存!深入 Linux C/C++ 调试工具之 sysdig
linux·运维·服务器·sysdig
Elcker4 小时前
YnuoAgent(依诺):一个 npm 包,跑起属于自己的 AI 研发平台
前端·人工智能·npm
qetfw4 小时前
Bash 变量:export、位置参数与默认值展开验证
linux·开发语言·chrome·bash
其实防守也摸鱼4 小时前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全
toooooop85 小时前
CentOS 7 内核 3.10.0-1160.119.1 升级指南
linux·运维·centos
码少女5 小时前
Linux——UDP协议和TCP协议
linux·网络·udp·tcp
GeW5 小时前
新质生产力发展路线图Linux、数据库、AI 一个都不能少
linux
kkkkkkkkkk_Z6 小时前
新手自学嵌入式 | 学习日记:Linux驱动复习之系统移植(U-Boot篇)
linux·运维·学习
Rabitebla6 小时前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法