bun install 是一个与 Node.js 兼容的 npm 客户端,旨在成为 npm 的超快继任者。
我们投入了很多精力来确保从 npm install 到 bun install 的迁移路径尽可能简单,只需运行 bun install 而不是 npm install 即可。
- 为 Node.js 和 Bun 设计:
bun install安装一个与 Node.js 兼容的 [node_modules] 文件夹。您可以在 Node.js 项目中代替npm install使用它,无需任何代码更改,也无需使用 Bun 的运行时。 - 自动转换
package-lock.json为 bun 的 [bun.lock] 锁定文件格式,保留您现有的已解析依赖版本,无需您进行任何手动操作。您可以在工作中秘密地使用bun install代替npm install,而没有人会注意到。 - 兼容
.npmrc: bun install 从 npm 的.npmrc读取 npm 注册表配置,因此您可以为 npm 和 Bun 使用相同的配置。 - 硬链接: 在 Windows 和 Linux 上,
bun install使用硬链接来节省磁盘空间和安装时间。
terminal
更快地运行 package.json 脚本
运行来自 package.json 的脚本、来自 [node_modules/.bin] 的可执行文件(类似于npx)以及 JavaScript/TypeScript 文件(就像 node 一样)- 全部来自一个简单的命令。
| NPM | Bun |
|---|---|
npm run <script> | bun <script> |
npm exec <bin> | bun <bin> |
node <file> | bun <file> |
npx <package> | bunx <package> |
bun run <executable> 时,它会选择本地安装的可执行文件
terminal
工作区?是的。
bun install 类似于 npm,支持工作区,具有更多功能。
在 [package.json] 中,您可以将 "workspaces" 设置为相对路径数组。
package.json
按工作区名称筛选脚本
在 Bun 中,--filter 标志接受一个 glob 模式,并将并发运行所有名称匹配该模式的工作区包的命令,遵守依赖顺序。
terminal
更新依赖项
要更新依赖项,您可以使用bun update <package>。这会将依赖项更新到满足 package.json 中指定的语义化版本范围的最新版本。
terminal
查看过时的依赖项
要查看过时的依赖项,请运行bun outdated。这类似于 npm outdated,但输出更紧凑。
terminal
列出已安装的包
要列出已安装的包,您可以使用bun pm ls。这将使用 Bun 的锁定文件作为真实来源列出 [node_modules] 文件夹中安装的所有包。您可以传递 -a 标志来列出所有已安装的包,包括传递性依赖。
terminal
terminal
创建包的 tarball
要创建包的 tarball,您可以使用bun pm pack。这将在当前目录中创建一个包的 tarball。
terminal
Shebang
如果包在#!/usr/bin/env node shebang 中引用 node,bun run 默认会尊重它并使用系统中的 node 可执行文件。您可以通过向 bun run 传递 --bun 参数强制它使用 Bun 的 node。
当您向 bun run 传递 --bun 时,我们会在临时目录中创建一个指向本地安装的 Bun 可执行文件的符号链接,命名为 "node",并在脚本执行期间将其添加到您的 PATH 中。
terminal
全局安装
您可以使用bun i -g <package> 全局安装包。默认情况下,这会安装到主目录内的 .bun/install/global/node_modules 文件夹中。
terminal