文章摘要
Dylan Conway在Bun项目中提交了一个Pull Request,旨在在bun install中实现"nodeLinker": "isolated"功能,以支持隔离模式的节点链接器。
文章总结
标题:在 bun install 中实现 "nodeLinker": "isolated" by dylan-conway · Pull Request #20440 · oven-sh/bun
URL 来源:https://github.com/oven-sh/bun/pull/20440
Markdown 内容:
在 bun install 中实现 "nodeLinker": "isolated" by dylan-conway · Pull Request #20440 · oven-sh/bun · GitHub
===============
导航菜单
切换导航
外观设置
产品
探索 * 为什么选择 GitHub * 所有功能 * 文档 * GitHub 技能 * 博客
- 解决方案
按公司规模 * 企业 * 中小团队 * 初创公司 * 非营利组织
按用例 * DevSecOps * DevOps * CI/CD * 查看所有用例
按行业 * 医疗保健 * 金融服务 * 制造业 * 政府 * 查看所有行业
- 资源
主题 * AI * DevOps * 安全 * 软件开发 * 查看所有
探索 * 学习路径 * 活动和网络研讨会 * 电子书和白皮书 * 客户故事 * 合作伙伴 * 高管洞察
可用附加组件 * GitHub 高级安全 企业级安全功能 * Copilot for business 企业级 AI 功能 * 高级支持 企业级 24/7 支持
搜索或跳转到...
搜索代码、仓库、用户、问题、拉取请求...
搜索
清除
提供反馈
我们阅读每一条反馈,并非常重视您的意见。
[x] 包含我的电子邮件地址以便联系
取消 提交反馈
保存的搜索
使用保存的搜索更快地过滤结果
名称
查询
要查看所有可用的限定符,请参阅我们的文档。
取消 创建保存的搜索
外观设置
重置焦点
您已在另一个标签页或窗口中登录。重新加载以刷新会话。您已在另一个标签页或窗口中注销。重新加载以刷新会话。您已在另一个标签页或窗口中切换账户。重新加载以刷新会话。忽略警报
{{ 消息 }}
其他导航选项
在 bun install 中实现 "nodeLinker": "isolated"#20440
新问题
对此项目有疑问吗? 注册一个免费的 GitHub 账户以打开问题并联系其维护者和社区。
点击“注册 GitHub”,即表示您同意我们的服务条款和隐私声明。我们会偶尔向您发送与账户相关的电子邮件。
已经在 GitHub 上?登录到您的账户
已合并
Jarred-Sumner 将 76 个提交合并到 main 从 dylan/isolated-install2025 年 7 月 9 日
已合并
在 bun install 中实现 "nodeLinker": "isolated"#20440
Jarred-Sumner 将 76 个提交合并到 main 从 dylan/isolated-install2025 年 7 月 9 日
+6,255 −1,185
对话
此文件包含隐藏或双向 Unicode 文本,可能会以不同于下面显示的方式解释或编译。要查看,请在编辑器中打开文件以显示隐藏的 Unicode 字符。了解更多关于双向 Unicode 字符的信息
复制链接
成员
dylan-conway 评论于 2025 年 6 月 16 日•
由 Jarred-Sumner 编辑
加载中
哎呀!
加载时出错。请重新加载此页面。
此 PR 做了什么?
此 PR 在 bun install 中实现了 "nodeLinker": "isolated" 选项,提供了类似 pnpm 的隔离安装模式,防止幻影依赖并支持并行安装包。
主要功能:
- 在 package.json 中添加对
workspaces.nodeLinker: "isolated"配置的支持 - 在
node_modules/.bun/目录下以隔离结构安装包 - 创建从
node_modules/<package>到.bun/<package>@<version>/node_modules/<package>的实际包的符号链接 - 正确处理作用域包、对等依赖和工作区
目录结构示例:
node_modules/
├── my-dependency -> .bun/my-dependency@1.0.0/node_modules/my-dependency
└── .bun/
├── my-dependency@1.0.0/
│ └── node_modules/
│ ├── my-dependency/
│ └── sub-dep -> ../../sub-dep@2.0.0/node_modules/sub-dep
└── sub-dep@2.0.0/
└── node_modules/
└── sub-dep/
配置: (bunfig.toml)
undefinedtoml [install] linker = "isolated" undefined
关闭#4274
修复#5688
关闭#1760
如何验证代码有效?
测试:
- 基本单依赖安装
- 作用域包(例如,
@types/*) - 传递依赖
- 循环依赖
- 文件夹依赖
- 工作区支持
- 符号链接结构验证
TODO: 更多测试
抱歉,出了点问题。
哎呀!
加载时出错。请重新加载此页面。
❤️12 dargmuesli, NovaBG03, evelant, josefaidt, Sparticuz, anytinz, servusdei2018, cweekly, dsabanin, haxzie, 和 2 更多用爱心表情回应🚀8 dargmuesli, NovaBG03, ashfaqnisar, evelant, josefaidt, dsabanin, haxzie, 和 tengla 用火箭表情回应
所有反应 * ❤️12 反应 * 🚀8 反应
dylan-conway 添加了 14 个提交 2025 年 6 月 9 日 02:48
解决对等依赖并去重包
1d461a4
修复构建
f35436b
将分支 'main' 合并到 dylan/isolated-install
bc92f70
对等依赖
c4b4511
将分支 'main' 合并到 dylan/isolated-install
c5204b2
早期去重
5c43e91
将分支 'main' 合并到 dylan/isolated-install
25fd992
将分支 'main' 合并到 dylan/isolated-install
3443ab4
处理隐式工作区依赖和别名依赖
1346f23
更好地处理别名包
a405364
过滤依赖
05364b5
使用相同的函数进行过滤
243a61b
[,在macOS和Linux上也有轻微的正向或中性影响。隔离安装还提高了在monorepo中使用Bun的可靠性。
- 引用:"Isolated installs are a significant performance improvement on Windows (10x, sometimes 20x faster installs)."
- 引用:"More importantly, they make using bun install in monorepos a lot more reliable."
- Jarred提到Bun v1.2.19将发布,修复了Windows上的隔离安装模式问题,并显著提升了Windows上的安装性能(10x到20x),在macOS和Linux上也有轻微的正向或中性影响。隔离安装还提高了在monorepo中使用Bun的可靠性。
Bun的脚本编写体验:
- dsabanin和papichulo2023都赞赏Bun的脚本编写API,认为其简洁、易用,且比Bash更友好,特别是对于TypeScript用户。
- 引用:"Really, really nice and ergonomic. Made a few utility scripts today and enjoyed it much better than bash."
- 引用:"Quite happy with it, now I dont to relearn bash syntax every few months when I need to do some minor changes."
- dsabanin和papichulo2023都赞赏Bun的脚本编写API,认为其简洁、易用,且比Bash更友好,特别是对于TypeScript用户。
Bun在JS生态系统中的地位:
- Alifatisk认为Bun正在成为JS生态系统的全能解决方案,并称赞Jarred的才华。
- 引用:"Bun is slowly becoming the all-in-one solution for the js ecosystem, what a talented beast Jarred is."
- Alifatisk认为Bun正在成为JS生态系统的全能解决方案,并称赞Jarred的才华。
Bun在monorepo中的使用问题:
- tekkk询问Bun在pnpm monorepo中的兼容性,担心迁移后可能缺少某些功能。
- 引用:"So can I use bun now in pnpm monorepo without problems?"
- 引用:"I don't want to do the hassle of migrating only to find out some functionalities are missing."
- tekkk询问Bun在pnpm monorepo中的兼容性,担心迁移后可能缺少某些功能。
技术细节的疑问:
- markl42询问Bun在底层与现有工具有何不同,反映了部分用户对技术细节的关注。
- 引用:"Can someone explain what this does differently to the status quo under the hood?"
- markl42询问Bun在底层与现有工具有何不同,反映了部分用户对技术细节的关注。
总结:Bun在性能、脚本编写体验和生态系统中的地位受到广泛认可,但在monorepo中的兼容性和技术细节上仍存在一些疑问。