阅读视图

发现新文章,点击刷新页面。

一个专业的前端如何在国内安装 `bun`

image.png

本文以 macOS 为例,但思路也适用于 Windows 系统。

本文思路适用于任何使用 bash 安装的命令。学会后一劳永逸!

对于 bun 我们有多种安装方式,可以使用现有的包管理器比如 npm i -g bun

但是有个麻烦事:npm 一般是通过 nvm 安装的,如果 nvm 切换版本,则无法使用 buncommand not found: bun),还得继续 npm i 安装一遍,颇为麻烦。

所以 bun 官方一般推荐通过 shell 脚本的方式安装,以下安装命令来自 bun 官网 bun.com/docs/instal…

curl -fsSL https://bun.com/install | bash # for macOS, Linux, and WSL

[!TIPS] 其实 Windows 系统安装了 git bash 上述命令也是可用的。

但是如果直接运行我们会发现超时报错。通过下载安装脚本 bun.com/install 和搜索关键词 github 我们在 101 行发现:

GITHUB=${GITHUB-"https://github.com"}

github_repo="$GITHUB/oven-sh/bun"

原因很清楚了国内无法访问 github,修复也很简单找一个 proxy 即可,这里我用的是 gh-proxy.com/ (2025-09 可用)。而且可以预留了环境变量 GITHUB

GITHUB=${GITHUB-"https://github.com"} 意思是如果环境变量存在 GITHUB 则使用,否则兜底到 "https://github.com",对于 JS 的默认值(GITHUB = GITHUB || "https://github.com")。

第一步:移除无用包

可选。主要是为了删除无用包减少磁盘浪费,以及避免冲突。切换到曾经安装过 bun 的 node.js 版本。

nvm use 20 # 切换到之前安装过 bun 的 node.js 版本
npm uninstall -g bun

第二步:替换成可用 proxy

因为这里 bun 做得特别好,相对于 pnpm 安装脚本来说(pnpm 安装详见我的上一篇文章)预留了环境变量 GITHUB,也就是我们可以灵活替换 github 地址,相当于给了我们留了一个『后门』,于细微初见架构。故我们有三种安装 bun 的方式,从简单到容易。

方式一:环境变量 + 远程脚本

充分利用环境变量特点。

GITHUB='https://gh-proxy.com/https://github.com' curl -fsSL https://bun.com/install | bash # for macOS, Linux, and WSL

方式二:环境变量 + 本地脚本

下载 bun.com/install 到本地并取名 bun-install.sh 并修改成如下:

[!TIPS] 注意:.sh 结尾可选,因为 bash 命令会将其当做脚本运行,这里稳妥起见还是 .sh 结尾。

GITHUB='https://gh-proxy.com/https://github.com' bash ~/Downloads/bun-install.sh

会自动将下载地址改成(macOS 系统下):

# 此处无需我们修改,只是阐述背后发生的事情
- https://github.com/oven-sh/bun/releases/latest/download/bun-darwin-aarch64.zip
+ https://gh-proxy.com/https://github.com/oven-sh/bun/releases/latest/download/bun-darwin-aarch64.zip

执行效果:

######################################################################### 100.0%
bun was installed successfully to ~/.bun/bin/bun

Added "~/.bun/bin" to $PATH in "~/.zshrc"

To get started, run:

  exec /bin/zsh
  bun --help

确实看到 .zshrc 文件尾部增加了:

# bun completions
[ -s "/Users/legend80s/.bun/_bun" ] && source "/Users/legend80s/.bun/_bun"

# bun
export BUN_INSTALL="$HOME/.bun"
export PATH="$BUN_INSTALL/bin:$PATH"

方式三:修改本地脚本

- GITHUB=${GITHUB-"https://github.com"}
+ GITHUB=${GITHUB-"https://gh-proxy.com/https://github.com"}

然后执行:

bash ~/Downloads/bun-install.sh

效果

重新开一个 terminal 让更新后的 .zshrc 生效或者直接 source .zshrc 然后,

试试 bun -v 输出 1.2.22(2025-09-27)。

再试试 bunx bunx ydd -e -s -c=a bun

一样成功 🎉。

总结

本文我们学会了不修改 shell 脚本安装开源命令,得益于环境变量以及默认值的灵活性。

啥时候给 pnpm 的脚本提个 issue 或 PR 让它也增加环境变量这样就更方便了。

一个专业的前端如何在国内安装 `pnpm`

the-nutcracker-ballet.jpeg

本文以 macOS 为例,但思路也适用于 Windows 系统。

对于 pnpm 我们有多种安装方式,可以使用现有的包管理器比如 npm npm i -g pnpm

但是 npm 一般是通过 nvm 安装的,如果 nvm 切换到其他 node.js 版本,则无法使用 pnpm(command not found: pnpm),还得继续安装一遍,颇为麻烦。

所以 pnpm 官方一般推荐通过 shell 脚本的方式安装,以下安装命令来自 pnpm 官网:pnpm.io/installatio…

curl -fsSL https://get.pnpm.io/install.sh | sh -

但是如果直接运行我们会发现超时以及报错。通过下载安装脚本 get.pnpm.io/install.sh 和搜索关键词 github 我们在 94 行发现:

archive_url="https://github.com/pnpm/pnpm/releases/download/v${version}/pnpm-${platform}-${arch}"

原因很清楚了国内无法访问 github,修复也很简单找一个 proxy 即可,这里我用的是 gh-proxy.com/ (2025-09-27 可用):

第一步:移除无用包

可选。主要是为了删除无用包,减少磁盘浪费,以及避免冲突。切换到曾经安装过 pnpm 的 node.js 版本。

nvm use 20
npm uninstall -g pnpm

第二步:替换成可用 proxy

将下载到本地的 install.sh 修改成如下:

archive_url="https://gh-proxy.com/https://github.com/pnpm/pnpm/releases/download/v${version}/pnpm-${platform}-${arch}"

然后执行:

sh install.sh

等待 10s 即可安装成功,并且 .zshrc 文件末尾将自动增加:

# pnpm
export PNPM_HOME="/Users/legend80s/Library/pnpm"
case ":$PATH:" in
  *":$PNPM_HOME:"*) ;;
  *) export PATH="$PNPM_HOME:$PATH" ;;
esac
# pnpm end

重新开一个 terminal 让更新后的 .zshrc 生效或者直接 source .zshrc 然后,

试试 pnpm -v 输出 10.17.1(2025-09-27)。

再试试 pnpx pnpx ydd -e -s -c=a hefty

一样成功 🎉。

❌