#workspace #cargo-workspace #occurs #times #cargo #inherit #cargo-toml

app cargo-dependency-inheritor

当工作区中某个依赖项出现 'n' 次或更多时,它会从主工作区继承依赖项的实用工具

2 个版本

0.1.1 2022 年 9 月 23 日
0.1.0 2022 年 9 月 20 日

#7#inherit

MIT 许可证

15KB
176

Cargo 工作区依赖继承器

如果工作区中某个依赖项出现 n 次或更多,则从主工作区继承依赖项的实用工具。

工作区继承在版本 1.64 中稳定。有关更多信息,请参阅 [workspace.package][workspace.dependencies]从工作区继承依赖项

如何使用

要继承工作区中出现五次或更多的依赖项,请使用以下命令

cargo install cargo-dependency-inheritor
cargo dependency-inheritor --workspace-path "path/to/workspace/Cargo.toml" -n 5

此命令将编辑您的 toml 文件,请确保有备份

过程

可以通过在工作区的 [workspace.dependencies] 表中指定依赖项来从工作区继承依赖项。之后,将其添加到具有 workspace = true 的 [dependencies] 表中。此软件包自动完成此过程。

  1. 读取工作区文件中 [workspace] 部分定义的软件包。
  2. 注意出现 n 次或更多的依赖项。
  3. 更新出现 n 次或更多的所有依赖项
    1. dependency = "0.1.3" 转换为内联表。
    2. workspace = true 键值对添加到依赖项内联表中。
    3. 如果存在,从内联表中删除 version(这将指定在工作区文件中)。
  4. 将包含所有出现 n 次的依赖及其版本的 [workspace.dependencies] 表格添加到根工作空间文件中。

结果

# in a project
[dependencies]
tokio = { workspace = true }

# in the workspace
[workspace.dependencies]
tokio = "1.0"

依赖

~5MB
~96K SLoC