bun patch 让你可以以一种可维护、对 Git 友好的方式持久地修补 [node_modules]。
有时,你需要对 [node_modules/] 中的包做一些小改动来修复错误或添加功能。bun patch 让你可以轻松地做到这一点,而无需将整个包复制到项目中,并且可以在多个安装、多个项目和多台机器之间重用补丁。
功能:
- 生成在安装时应用到 [node_modules] 中依赖的
.patch文件 .patch文件可以提交到你的仓库,在多个安装、项目和机器之间重用- [package.json] 中的
"patchedDependencies"跟踪打过补丁的包 bun patch让你修补 [node_modules/] 中的包,同时保持 Bun 的全局缓存完整性- 在使用
bun patch --commit <pkg>提交更改之前,可以在本地测试你的更改 - 为了节省磁盘空间并保持
bun install的速度,打过补丁的包会被提交到全局缓存并在可能的情况下在项目间共享
步骤 1. 准备要打补丁的包
要开始,请使用bun patch <pkg> 准备要打补丁的包:
terminal
不要忘记调用
bun patch <pkg>!这确保 [node_modules/] 中的包文件夹包含一个没有符号链接/硬链接到 Bun 缓存的新鲜副本。如果你忘记了,你可能会全局编辑缓存中的包!步骤 2. 在本地测试你的更改
bun patch <pkg> 让你可以安全地直接编辑 [node_modules/] 中的 <pkg>,同时保持 Bun 的全局缓存完整性。这是通过在 [node_modules/]中重新创建一个未链接的包副本并与全局缓存中的原始包进行差异比较来实现的。
步骤 3. 提交你的更改
一旦你对更改满意,运行bun patch --commit <path or pkg>。
Bun 将在 patches/ 中生成一个补丁文件,更新你的 [package.json] 和锁定文件,然后 Bun 将开始使用打过补丁的包:
terminal
CLI 用法
补丁生成
安装包含
dir 中修改的包放置补丁文件的目录(仅当使用 —commit 时)
依赖管理
不安装 devDependencies。别名:
-p跳过项目
package.json 中的生命周期脚本(依赖脚本永远不会运行)添加到项目
package.json 中的 trustedDependencies 并安装包全局安装。别名:
-g从安装中排除
dev、optional 或 peer 依赖项目文件和锁文件
写入
yarn.lock 文件(yarn v1)。别名:-y不更新
package.json 或保存锁文件保存到
package.json(默认为 true)禁止更改锁文件
保存基于文本的锁文件
生成锁文件但不安装依赖
安装控制
安装依赖的平台特定优化。可能的值:
clonefile(默认)、
hardlink、symlink、copyfile链接器策略(
isolated 或 hoisted 之一)不安装任何内容
始终从注册表请求最新版本并重新安装所有依赖。别名:
-f跳过验证新下载包的完整性
网络和注册表
提供证书颁发机构签名证书
与
—ca 相同,但作为证书的文件路径默认使用特定注册表,覆盖
.npmrc、bunfig.toml 和环境
变量最大并发网络请求数(默认为 48)
性能和资源
生命周期脚本的最大并发作业数(默认为 5)
缓存
从特定目录路径存储和加载缓存数据
完全忽略清单缓存
输出和日志
不记录任何内容
打包时仅显示 tarball 名称
过度详细的日志记录
禁用进度条
不打印摘要
平台目标
覆盖可选依赖的 CPU 架构(例如,
x64、arm64、* 表示全部)覆盖可选依赖的操作系统(例如,
linux、darwin、* 表示全部)全局配置和上下文
指定配置文件路径(
bunfig.toml)。别名:-c设置特定的当前工作目录
帮助
打印此帮助菜单。别名:
-h