【Bun中文文档-Package runner】bunx

428 阅读1分钟

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

使用bunx来自npm自动安装和运行包。它相当于npxyarn dlx

$ bunx cowsay "Hello world!"

⚡️ 速度 — 由于 Bun 启动速度很快,对于本地安装的包,bunxnpx大约 100 倍

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

{
  // ... 其他字段
  "name": "my-cli",
  "bin": {
    "my-cli": "dist/index.js"
  }
}

这些可执行文件通常是带有shebang 行的普通 JavaScript 文件,以指示应使用哪个程序来执行它们。以下文件指示应使用node执行它。

#!/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标志必须出现在可执行文件名称之前。出现在名称之后的标志将传递给可执行文件。