`pnpm add -g pnpm` 全局安装报错解决方案 - 最官方最简单可靠的方式适用于 Windows 和 Macos

3,387 阅读2分钟

image.png

欢迎关注公众号『JavaScript与编程艺术』高质量文章优先公众号发布。

最近 bun 有更新,最新 2024-8-27 V1.1.26 对 Windows 有性能优化,所以很想试试,因为 pnpm 安装依赖可以节省大量空间,所以准备用其安装 bun。

pnpm add -g bun

但是报错:

ERROR  Unable to find the global bin directory Run "pnpm setup" to create it automatically, or set the** global-bin-dir** setting, or the PNPM_HOME env variable. The global bin directory should be in the PATH.

网上有一堆解决方案都要设置很多地方,不知所然就贸然设置不太放心,我们针对报错信息逐个解决。

首先我们不能用 pnpm setup 否则会将依赖安装在 C 盘。我们的目标是放到其他盘,比如 E 的 pnpm 目录(自行新建)。其次我们用 Linux 的方式设置环境变量,因为 Windows 设置环境变量相对于 *inux 系列实在过于繁琐。当然前提是我们的 terminal 是 git bash 或 oh my zsh(如何安装详见《Windows 打造和 macOS 几乎一样的开发体验》- 掘金

第一步:set the PNPM_HOME env variable

选择我们熟悉的类似 Macos 方式,在 .zshrc 中设置。如果没有安装 zsh 可以在 ~/.bash_profile~/.bashrc 中设置。

# .zshrc
export PNPM_HOME="E:\pnpm"

设置完毕记得重开 terminal 或者 source .zshrc。尝试全局安装 bun,如果报错“ERROR  The configured global bin directory "e:/pnpm" is not in PATH”,则继续。

第二步:将 PNPM_HOME 环境变量加入 PATH 解决 bin directory ... is not in PATH

.zshrc 增加

export PATH="$PNPM_HOME:$PATH" # 等同于 export PATH=/e/pnpm:$PATH

如果报错“ERR_PNPM_NO_GLOBAL_BIN_DIR  Unable to find the global bin directory”

命令行执行 pnpm config set global-bin-dir e:/pnpm,若不报错可不执行,我们每个操作都需要有特定目的,不能随意执行命令。

验证

首先看看我们的环境变量设置是否符合预期:

echo $PNPM_HOME
E:\pnpm
echo $PATH     
/e/pnpm:/c/...

最后试试是否全局安装 bun 成功

❯ pnpm add bun -g
Packages: +3
+++
Downloading @oven/bun-windows-x64-baseline@1.1.26: 36.60 MB/36.60 MB, done
Downloading @oven/bun-windows-x64@1.1.26: 36.74 MB/36.74 MB, done
Progress: resolved 9, reused 0, downloaded 3, added 3, done
.pnpm/bun@1.1.26/node_modules/bun: Running postinstall script, done in 23.4s

E:\pnpm\global\5:
+ bun 1.1.26

Done in 1m 0.6s

安装成功 🎉🎉🎉!

总结

.zshrc 增加两行代码:

# ~/.zshrc
export PNPM_HOME="E:\pnpm"
export PATH="$PNPM_HOME:$PATH"

这也是官方推荐的设置方式,详见

image.png

点赞数最多

参考