注意 —
bunx
是bun x
的别名。安装bun
时,bunx
CLI 将自动安装。
使用 bunx
从 npm
自动安装和运行包。它相当于 npx
或 yarn dlx
。
bunx cowsay "Hello world!"
⚡️ 速度 — 由于 Bun 的启动时间很快,对于本地安装的软件包,
bunx
大约比npx
快 100 倍。
软件包可以在其package.json
的"bin"
字段中声明可执行文件。这些文件称为包可执行文件或包二进制文件。
// package.json{// ... other fields"name": "my-cli","bin": {"my-cli": "dist/index.js"}
}
这些可执行文件通常是纯 JavaScript 文件,标有 shebang 行,以指示应该使用哪个程序来执行它们。以下文件指示它应该与 node
一起执行。
#!/usr/bin/env nodeconsole.log("Hello world!");
这些可执行文件可以用 bunx
运行。
bunx my-cli
与 npx
一样,bunx
将首先检查本地安装的包,然后回退到从 npm
自动安装包。已安装的软件包将存储在 Bun 的全局缓存中,以备将来使用。
参数和标志
若要将其他命令行标志和参数传递到可执行文件,请将它们放在可执行文件名称之后。
bunx my-cli --foo bar
shebangs
默认情况下,Bun 尊重 shebangs。如果可执行文件标记为 #!/usr/bin/env node
将启动一个node
进程来执行该文件。但是,在某些情况下,可能需要使用 Bun 的运行时运行可执行文件,即使可执行文件另有指示。为此,请包含 --bun
标志。
bunx --bun my-cli
--bun
标志必须出现在可执行文件名称之前。名称后显示的标志将传递到可执行文件。
bunx --bun my-cli # good
bunx my-cli --bun # bad
要强制 bun 始终与脚本一起使用,请使用 shebang。
#!/usr/bin/env bun