概述
你写 TypeScript 项目时,有没有被 npm 装依赖慢到想摔键盘?一个大型项目 install 半小时是常态。
Bun 是近年冒出来的 JavaScript 运行时,主打一个快。它把 Node.js、npm、TypeScript 编译器打包成一体。装依赖用它的包管理器,比 npm 快 20-50 倍。写 TypeScript 不用转译,直接 run。
这篇教程带你从零装好 Bun,配好国内镜像,跑通第一个项目。
准备工作
- 一台能正常联网的 Linux VPS 或本地 Linux 机器
- Ubuntu 20.04+ / Debian 11+ / CentOS 8+ 均可
- root 权限或 sudo 权限
- 磁盘剩余空间 500MB 以上
步骤
第一步:一键安装 Bun
Bun 官方提供了脚本,一行搞定:
curl -fsSL https://bun.sh/install | bash
安装脚本会做这几件事:下载最新稳定版 bun 二进制、放入 /root/.bun/bin、在 ~/.bashrc 写入 PATH 配置。
装完后让环境变量立即生效:
source ~/.bashrc
第二步:验证安装
bun --version
正常输出类似 1.2.15。同时确认 bunx 可用:
bunx --version
bunx 是 Bun 的 npx 替代品,用来运行一次性工具,比如跑一个临时脚本。
第三步:初始化一个项目
进到你想放项目的目录,初始化:
mkdir my-bun-app && cd my-bun-app
bun init
bun init 会交互式问你几个问题(项目名称、是否用 TypeScript 等),一路回车用默认值也行。完成后会生成 package.json 和 bun.lockb。
顺手验证一下 TypeScript 能直接跑:
echo 'console.log("hello bun")' > index.ts
bun run index.ts
终端输出 hello bun,说明一切正常。注意:这里不需要 ts-node,bun 原生支持。
第四步:替换国内镜像(可选)
Bun 的官方包 registry 在国内访问不稳定,换到淘宝镜像:
echo '{"registry":"https://registry.npmmirror.com"}' > .bunfig.toml
这样 bun install 和 bun add 都会走淘宝源,速度起飞。
你也可以在任意位置放 bunfig.toml,Bun 会从当前目录向上递归读取。
第五步:常用命令速查
# 安装所有依赖(等价于 npm install)
bun install
# 加一个依赖
bun add lodash
# 加一个开发依赖
bun add -d typescript
# 跑脚本(package.json 里定义的)
bun run dev
bun run build
# 直接跑一个 TS 文件
bun run index.ts
# 用 bunx 跑临时工具
bunx create-react-app my-app
# 查看已安装的包
bun pm ls
# 查看 lock 文件
cat bun.lockb | head -5
bun run 可以直接跑 TS、JS、JSON 文件,不需要额外配置。
第六步:加入开机自启服务(可选)
如果你想让 Bun 应用作为服务常驻,用 systemd 管理:
cat <<EOF | sudo tee /etc/systemd/system/bun-app.service
[Unit]
Description=Bun Application
After=network.target
[Service]
Type=simple
User=$(whoami)
WorkingDirectory=/home/$USER/my-bun-app
ExecStart=/root/.bun/bin/bun run /home/$USER/my-bun-app/index.ts
Restart=on-failure
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable bun-app
sudo systemctl start bun-app
用 systemctl status bun-app 查看运行状态。
验证
全部搞完后跑这几个检查:
# 1. 版本确认
bun --version
# 2. 包管理器是否正常
bun pm ls
# 3. 镜像配置是否生效
cat .bunfig.toml
# 4. TypeScript 直接运行
bun run index.ts
四项都通过,Bun 环境就彻底配好了。
常见问题
提示"bun: command not found"?
环境变量没加载。直接执行一次 source:
source ~/.bashrc
如果还不行,手动加 PATH:
echo 'export PATH="$HOME/.bun/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
安装脚本卡在下载不动?
网络问题。先把镜像换成国内源再试:
# 手动下载 bun 二进制
curl -fsSL https://registry.npmmirror.com/-/binary/bun/v1.2.15/bun-linux-x64 -o bun
chmod +x bun
sudo mv bun /usr/local/bin/bun
和 Node.js 能共存吗?
可以。Bun 和 Node.js 互不干扰,各装各的。用 node --version 和 bun --version 分别确认就行。
bun.lockb 和 package-lock.json 能混用吗?
不能混用。Bun 用 bun.lockb,npm 用 package-lock.json,yarn 用 yarn.lock。切换包管理器时记得删掉旧的 lock 文件,避免混乱。