Bun

全局缓存

从注册表下载的所有包都存储在 ~/.bun/install/cache 中的全局缓存中,或者由环境变量 BUN_INSTALL_CACHE_DIR 定义的路径中。它们存储在类似 ${name}@${version} 的子目录中,因此可以缓存包的多个版本。

配置缓存行为 (bunfig.toml)

减少重新下载

Bun 致力于避免多次重新下载包。安装包时,如果缓存已包含 package.json 指定范围内的版本,Bun 将使用缓存的包,而不是再次下载。

安装详情

快速复制

将包下载到缓存后,Bun 仍然需要将这些文件复制到 node_modules 中。 Bun 使用最快的系统调用来执行此任务。在 Linux 上,它使用硬链接;在 macOS 上,它使用 clonefile

节省磁盘空间

由于 Bun 在 Linux 和 Windows 上使用硬链接将模块“复制”到项目的 node_modules 目录中,因此包的内容仅存在于磁盘上的单个位置,从而大大减少了专用于 node_modules 的磁盘空间量。

此优点也适用于 macOS,但也有例外。它使用 clonefile,它是写入时复制,这意味着它不会占用磁盘空间,但会算入驱动器的限制。如果某些东西尝试修补 node_modules/*,此行为很有用,因此不可能影响其他安装。

安装策略