bun run

bun CLI 可用于执行 JavaScript/TypeScript 文件、package.json中的scripts 以及可执行包。

性能

Bun 旨在快速启动和快速运行。Bun 使用的是由 Apple 为 Safari 开发的 JavaScriptCore 引擎。在大多数情况下,其启动和运行性能比 Node.js 和基于 Chromium 的浏览器使用的 V8 引擎更快。其转译器和运行时是用 Zig 编写的,Zig 是一种现代、高性能的编程语言。在 Linux 上,这可使启动时间比 Node.js 快 4 倍。

bun hello.js	5.2ms
node hello.js	25.1ms

运行文件

Bun 自带对 TypeScript 和 JSX 开箱即用的支持。Bun 的快速原生转译器在执行之前会即时转译每个文件。

bun run index.js
bun run index.jsx
bun run index.ts
bun run index.tsx

或者,你可以省略“run”关键字并使用“裸”命令;它们的行为是完全相同的。

bun index.tsx
bun index.js

--watch

若要在监视模式下运行文件,请使用 --watch 标志。

bun --watch run index.tsx

注意 — 使用 bun bun run 时,请立即在 bun 后面放置 --watch 等 Bun 标志。

bun --watch run dev # ✔️ do this
bun run dev --watch # ❌ don't do this

在命令末尾出现的标志将被忽略并传递到 "dev" 脚本本身。

--smol

在内存受限的环境中,使用 --smol 标志以牺牲性能为代价来减少内存使用量。

bun --smol run index.tsx

运行 package.json 中的脚本 

bun [bun flags] run <script> [script flags]

您的package.json可以定义许多与 shell 命令相对应的命名"scripts"”。

{
  // ... other fields
  "scripts": {
    "clean": "rm -rf dist && echo 'Done.'",
    "dev": "bun server.ts"
  }
}

使用 bun run <script> 执行这些脚本。

$ bun run clean
$ rm -rf dist && echo 'Done.'
 Cleaning...
 Done.

Bun 在子 shell 中执行脚本命令。它使用找到的第一个 shell 按顺序检查以下 shell:bashshzsh

⚡️ npm run 的启动时间约为 170 ms;使用 Bun 是 6ms

如果 package.json 脚本和内置 bun 命令(installdevupgrade 等)之间存在名称冲突Bun 的内置命令优先。在这种情况下,请使用更显式的 bun run 命令来执行包脚本。

bun run dev

若要查看可用脚本的列表,请运行不带任何参数的 bun run

$ bun run
quickstart scripts:

 bun run clean
   rm -rf dist && echo 'Done.'

 bun run dev
   bun server.ts

2 scripts

Bun 尊重生命周期钩子。例如,如果定义了 preclean 和 postclean,那么 bun run clean 将执行它们。如果 pre<script> 执行失败,Bun 将不会执行脚本本身。

--bun

package.json 脚本通常会引用本地安装的 CLI(如 vite 或 next)。这些 CLI 通常是带有井号(shebang)标记的 JavaScript 文件,表明它们应使用 node 执行。

#!/usr/bin/env node

// do stuff

默认情况下,Bun 尊重这个 shebang 并使用 node 执行脚本。但是,您可以使用 --bun 标志覆盖此行为。对于基于 Node.js 的 CLI,这将使用 Bun 而不是 Node.js 运行 CLI。

bun run --bun vite

  • 17
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值