主要观点:
- 介绍了“vendoring”软件这一技术,即直接将其他项目的源代码复制到自己的项目中,其在软件开发中历史悠久,如在[ruby 社区]起源,如今仍被使用,如可轻松引入 htmx 库。
- 阐述了“vendoring”的优势,包括项目全部代码纳入源代码库,提高依赖可见性,便于调试和修改代码,从安全角度可自动分析代码等,但也存在传递依赖问题这一重大缺点,不过这也促使形成独立文化。
- 指出依赖管理器可解决“vendoring”的传递依赖问题,但也有权衡,如 htmx 使用 NPM 管理开发依赖导致依赖数量膨胀,还可能引入危险的 polyfill 等,展示了依赖管理器存在的文化问题。
- 引用其他开发者的观点,如 Armin Ronacher 对依赖的看法,Tom Macwright 对“vendoring”的思考等,强调减少依赖的重要性。
- 提到一些使软件更适合“vendoring”的做法,如 DaisyUI 减少依赖,以及一些 htmx 相关的推荐“vendoring”的项目。
- 简要提及结合“vendoring”和依赖管理的技术,如 vendor-first 依赖管理器,有望解决“vendoring”的传统弱点。
关键信息:
- “vendoring”技术及示例(如引入 htmx 库)。
- “vendoring”的优势(如提高可见性等)和缺点(传递依赖问题)。
- 依赖管理器及其问题(如 htmx 使用 NPM 导致依赖膨胀等)。
- 其他开发者对依赖的看法和相关项目。
- vendor-first 依赖管理器的提及。
重要细节:
- “vendoring”的 curl 命令用于下载 htmx 源代码到项目中。
- 提到 htmx 的
package-lock.json
文件中依赖数量的膨胀及相关问题。 - 列举的一些推荐“vendoring”的项目及其特点。
- 提及的 vendor-first 依赖管理器的相关工具及特点。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。