bun-runtime
Bun 作为运行时、包管理器、打包器和测试运行器。何时选择 Bun 而非 Node、迁移注意事项以及 Vercel 支持。
它会碰到什么
扫了多少1 个文本文件,2 KB
它会碰到什么读凭据
命中总数2 处
命中统计严重 1 · 高 0 · 中 0 · 低 0
逐条看命中(1 条严重或高危)
- 严重
SKILL.md:46cred-pathsbun run --env-file=.env dev
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
Bun 运行时
Bun 是一个快速的全能 JavaScript 运行时和工具集:运行时、包管理器、打包器和测试运行器。
何时使用
- 优先选择 Bun 用于:新的 JS/TS 项目、安装/运行速度很重要的脚本、使用 Bun 运行时的 Vercel 部署,以及当您想要单一工具链(运行 + 安装 + 测试 + 构建)时。
- 优先选择 Node 用于:最大的生态系统兼容性、假定使用 Node 的遗留工具,或者当某个依赖项存在已知的 Bun 问题时。
在以下情况下使用:采用 Bun、从 Node 迁移、编写或调试 Bun 脚本/测试,或在 Vercel 或其他平台上配置 Bun。
工作原理
- 运行时:开箱即用的 Node 兼容运行时(基于 JavaScriptCore,用 Zig 实现)。
- 包管理器:
bun install比 npm/yarn 快得多。在当前 Bun 中,锁文件默认为bun.lock(文本);旧版本使用bun.lockb(二进制)。 - 打包器:用于应用程序和库的内置打包器和转译器。
- 测试运行器:内置的
bun test,具有类似 Jest 的 API。
从 Node 迁移:将 node script.js 替换为 bun run script.js 或 bun script.js。运行 bun install 代替 npm install;大多数包都能工作。使用 bun run 来执行 npm 脚本;使用 bun x 进行 npx 风格的临时运行。支持 Node 内置模块;在存在 Bun API 的地方优先使用它们以获得更好的性能。
Vercel:在项目设置中将运行时设置为 Bun。构建命令:bun run build 或 bun build ./src/index.ts --outdir=dist。安装命令:bun install --frozen-lockfile 用于可重复的部署。
示例
运行和安装
# Install dependencies (creates/updates bun.lock or bun.lockb)
bun install
# Run a script or file
bun run dev
bun run src/index.ts
bun src/index.ts
脚本和环境变量
bun run --env-file=.env dev
FOO=bar bun run script.ts
测试
bun test
bun test --watch
// test/example.test.ts
import { expect, test } from "bun:test";
test("add", () => {
expect(1 + 2).toBe(3);
});
运行时 API
const file = Bun.file("package.json");
const json = await file.json();
Bun.serve({
port: 3000,
fetch(req) {
return new Response("Hello");
},
});
最佳实践
- 提交锁文件(
bun.lock或bun.lockb)以实现可重复的安装。 - 在脚本中优先使用
bun run。对于 TypeScript,Bun 原生运行.ts。 - 保持依赖项最新;Bun 和生态系统发展迅速。
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
同名技能的其他版本
有 5 个不同仓库或目录里都有叫 bun-runtime 的技能。它们内容并不相同,别混用:
- affaan-m/ECC — Bun as runtime, package manager, bundler, and test runner. When to choose Bun vs Node, mig
- affaan-m/ECC — Bun as runtime, package manager, bundler, and test runner. When to choose Bun vs Node, mig
- affaan-m/ECC — ランタイムとしてのBun、パッケージマネージャー、バンドラー、テストランナー。Bun対Nodeを選択する場合、移行メモ、Vercelサポート。
- affaan-m/ECC — Bun as runtime, package manager, bundler, and test runner. When to choose Bun vs Node, mig