如何使用 Bun JavaScript 執行環境:macOS/Linux 安裝、bun init、跑 TypeScript 與 bun install 對照 npm

用 Bun 的 bun init 與 bun install 跑 TypeScript, toolchain 更輕。

前端脚本、小 API 或 CLI 工具,若每次都要配 ts-node、等 npm 装依赖、再写一层构建,启动成本偏高。Bun 是带 JavaScript/TypeScript 執行时、包管理器、测试与打包的一体化工具链,官方文档在 bun.sh/docs。

搜尋 Bun 安裝 macOS Linux bun init 執行 TypeScript bun install 對照 npm 的人,通常要完成:在 macOS/Linux 安裝 Bun、bun init 建项目、直接跑 .ts 文件、用 bun install 装依赖并理解与 npm 的差异。以下步骤以官方文档为准。

安裝 Bunbun init · 跑 TSbun install · 与 npm 对照

Bun 适合谁

01

想少配工具链的 JS/TS 开发者

一个二进制同时跑脚本、装包、跑测试;小服务或脚本不必先搭 webpack + ts-node。

02

从 Node 迁移但保留 npm 生态的人

bun install 读 package.json,多数 npm 包可直接用;锁文件为 bun.lockb(二进制,应用 Git 跟踪)。

03

本地要快、生产仍用 Node 的团队

开发用 Bun 提速;上线若需 Node LTS,CI 里仍可 npm ci — 团队应在 README 写清「开发 Bun / 生产 Node」或统一執行时。

在 macOS / Linux 安裝 Bun

  1. 1

    官方安裝脚本(推荐)

    在终端执行文档 Installation 中的命令,例如 curl -fsSL https://bun.sh/install | bash。装完后新开终端,執行 bun --version。

  2. 2

    macOS:Homebrew

    brew tap oven-sh/bun 后 brew install bun(以 bun.sh 文档当前说明为准)。只保留一种安裝路径,避免 PATH 里多个 bun。

  3. 3

    Linux / WSL

    优先用官方 install 脚本;验证 which bun 与 bun --version。企业环境若禁止 curl 管道,改用文档列出的包管理器或离线包。

  4. 4

    升级

    bun upgrade 拉最新稳定版(见 CLI 文档)。升级后若 CI pin 版本,同步更新镜像或 action。

用 bun init 创建项目

  1. 1

    空目录初始化

    mkdir my-app && cd my-app,執行 bun init。交互式向导可选模板(空白、React 等 — 以 CLI 提示为准)。

  2. 2

    非交互快速开始

    bun init -y 生成最小 package.json 与 index.ts(选项名以 bun init --help 为准)。

  3. 3

    确认入口

    查看 package.json 的 module / type 与入口文件;后续 bun run 会读这里的 scripts。

直接執行 TypeScript

Bun 内置 TypeScript/ JSX 转译,多数场景无需单独 tsc 或 ts-node:

# 跑单个文件
bun run index.ts

# 等价于直接执行(常见习惯)
bun index.ts

# package.json scripts
bun run dev

若项目依赖 Node 专有 API 或原生模块,先在本地跑一遍测试;不兼容的包仍以 npm 文档与 issue 为准,不要假设 100% 与 Node 行为一致。

bun install 与 npm 對照

任务npmBun
安裝依赖npm installbun install
加依赖npm install pkgbun add pkg
跑 scriptnpm run devbun run dev
锁文件package-lock.jsonbun.lockb

bun install 通常比 npm 更快(并行与缓存策略见官方 Package manager 文档)。已有 package-lock.json 的仓库可以逐步引入 Bun:先在分支试 bun install,确认测试通过再决定是否提交 bun.lockb。

Bun 加速的是本地安裝与跑 TS;若 Docker 生产镜像仍用 node:22,请在 Dockerfile 里明确 Node 版本,不要假设 Bun 与 Node 镜像可互换。

远程结对过一遍 package.json 或 CI 配置时,可从 wbroom 首页 开浏览器房间,见 建立與加入房間。

还想核对的问题

Bun 能完全替代 Node 吗?

视项目而定。许多 npm 包在 Bun 下正常,但 Node 原生 addon、部分边缘 API 可能不兼容。用官方 Node compatibility 列表与自家测试套件验证后再切换生产執行时。

可以同时保留 package-lock.json 和 bun.lockb 吗?

技术上可以,但团队应约定单一真相源。混用两种锁文件容易导致 CI 与笔记本不一致。选 Bun 为主就提交 bun.lockb 并在 CI 用 bun install --frozen-lockfile(见文档)。

Windows 怎么办?

本文聚焦 macOS/Linux。Windows 支持以 bun.sh 文档 Installation 当前说明为准(含 WSL 建议)。

和 mise、pnpm 怎么分工?

mise 管多版本 Node/Python;Bun 自带執行时也可被 mise 安裝。pnpm 仍是 Node 生态里的高效包管理器 — 若仓库已标准化 pnpm,不必为尝鲜强行改 Bun;新脚本项目更适合先试 Bun。

開始一場會議