bunx
是bun
的别名。当您安装bun
时,bunx
CLI 将自动安装。
使用bunx
来自npm
自动安装和运行包。它相当于npx
或yarn dlx
。
$ bunx cowsay "Hello world!"
⚡️ 速度 — 由于 Bun 启动速度很快,对于本地安装的包,
bunx
比npx
快大约 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
标志必须出现在可执行文件名称之前。出现在名称之后的标志将传递给可执行文件。