欢迎关注公众号『
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"
这也是官方推荐的设置方式,详见
点赞数最多