Bun

bunx

注意bunxbun x 的别名。当您安装 bun 时,bunx CLI 将会自动安装。

使用 bunxnpm 自动安装并运行包。它是 Bun 相当于 npxyarn dlx 的工具。

bunx cowsay "Hello world!"

⚡️ 速度 — 凭借 Bun 快速的启动时间,对于本地安装的包,bunxnpx 大约快 100 倍。

包可以在其 package.json"bin" 字段中声明可执行文件。这些被称为*包可执行文件*或*包二进制文件*。

package.json
{
  // ... other fields
  "name": "my-cli",
  "bin": {
    "my-cli": "dist/index.js"
  }
}

这些可执行文件通常是纯 JavaScript 文件,用释伴行标记,以指示应该使用哪个程序来执行它们。以下文件指示应使用 node 执行。

dist/index.js
#!/usr/bin/env node

console.log("Hello world!");

这些可执行文件可以使用 bunx 运行,

bunx my-cli

npx 一样,bunx 将首先检查本地安装的包,然后回退到从 npm 自动安装包。安装的包将存储在 Bun 的全局缓存中以供将来使用。

参数和标志

要将其他命令行标志和参数传递给可执行文件,请将它们放在可执行文件名之后。

bunx my-cli --foo bar

Shebangs

默认情况下,Bun 尊重 Shebangs。如果可执行文件标记为 #!/usr/bin/env node,Bun 将启动一个 node 进程来执行该文件。但是,在某些情况下,即使可执行文件另有指示,也可能需要使用 Bun 的运行时来运行可执行文件。为此,请包含 --bun 标志。

bunx --bun my-cli

--bun 标志必须*在*可执行文件名称*之前*出现。在名称*之后*出现的标志将传递给可执行文件。

bunx --bun my-cli # good
bunx my-cli --bun # bad

要强制 bun 始终与脚本一起使用,请使用 Shebangs。

#!/usr/bin/env bun