bun install 是一个快速且兼容 Node.js 的 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 registry 配置,因此 npm 和 Bun 可以使用相同的配置。 - 硬链接:在 Windows 和 Linux 上,
bun install使用硬链接来节省磁盘空间并加快安装速度。
terminal
更快地运行 package.json 脚本
使用单个命令运行package.json 中的脚本、node_modules/.bin 中的可执行文件(如 npx),以及 JavaScript/TypeScript 文件(如 node)。
bun run <executable> 使用本地安装的可执行文件。
terminal
支持工作区(Workspaces)
bun install 支持类似 npm 的工作区功能,并且提供更多特性。
在 package.json 中,将 "workspaces" 设置为相对路径数组。
package.json
按工作区名称筛选脚本
在 Bun 中,--filter 标志接受一个 glob 模式,并按照依赖顺序,为每个名称与其匹配的工作区包并发运行命令。
terminal
更新依赖
bun update <package> 将依赖更新到满足 package.json 中 semver 范围的最新版本。
terminal
查看过期依赖
要查看过期依赖,请运行bun outdated。它的工作方式类似于 npm outdated,但输出更加紧凑。
terminal
列出已安装的包
bun pm ls 列出 node_modules 文件夹中安装的软件包,并使用 Bun 的锁文件作为真实来源。传递 -a 标志还可以列出传递依赖项。
terminal
terminal
创建包的压缩包
bun pm pack 会在当前目录中创建包的 tarball。
terminal
Shebang
如果软件包在#!/usr/bin/env node shebang 中引用了 node,bun run 默认会遵循该设置并使用系统的 node 可执行文件。若要强制使用 Bun,请将 --bun 传递给 bun run。
传递 --bun 时,Bun 会在临时目录中创建一个名为 "node"、指向本地安装的 Bun 可执行文件的符号链接,并在脚本运行期间将其添加到 PATH 中。
terminal
全局安装
使用bun i -g <package> 全局安装软件包。默认情况下,它们会安装到主目录下的 .bun/install/global/node_modules 文件夹中。
terminal