模块依赖关系: 使用标准的 dagger.lock
作者: shykes创建于 2026年9月9日更新于 2026年9月9日
□ 内容
一个模块表可以声明"运行时的依赖性":引擎打开客户端连接时应该预先加载并服务到已加载模块的其他模块. 这个特性将在未来的 v2 模块显示中被贬值(而不是每个客户端以动态和懒散的方式加载各自的依赖性).
□ 问题
如目前实施的那样,模块运行时间依赖性会携带自己的指针. 因此'dagger-module.toml'作为自己的锁文件,独立于用户自己的'dagger.lock'. 因此,有3个锁文件涉及:
- A工作区开发上游模块的
dagger.lock'(dagger mod客户端添加.') - 工作区B的
dagger.lock',上游为*已安装*(dagger mod s安装.') - `dagger-module.toml'在A工作区开发,并装入B工作区。
这太复杂了。 很难可靠地保持这些文件的同步;用户难以理解生命周期而不会出错;SDK开发人员难以正确执行;并且会与客户端统一相断,这完全贬低了运行时的依赖性.
□ 解决
1.0.0-β.12(现在):从匕首-模块.toml中去除依赖性.*.pin。 依赖性地址被写入匕首-moule.toml与上游匕首.toml完全相同. 要控制版本,模块devs应该使用版本限制. 精确的指针用下游匕首.lock来写. 如果开发者真的需要特定的承诺,他们可以只使用参考作为版本
统一(即时):停止在匕首-模块.toml中使用依赖性。 同样的生命周期。
后期:如果模块devs需要更多的控制,我们可以添加一个功能,允许模块用上覆锁文件(同格式)来运送. 但可以等,不能单行道
说吧
内容来源: dagger/dagger