#cargo-subcommand #子命令 #供应商 #io #本地 # #目录

app cargo-vendor

A Cargo 子命令,用于将所有 crates.io 依赖项部署到本地文件系统中

22 个版本

使用旧的 Rust 2015

0.1.23 2019年2月2日
0.1.22 2018年12月7日
0.1.21 2018年11月1日
0.1.15 2018年5月18日
0.1.0 2015年8月24日

#157 in #子命令

Download history 168/week @ 2024-03-13 110/week @ 2024-03-20 102/week @ 2024-03-27 136/week @ 2024-04-03 97/week @ 2024-04-10 96/week @ 2024-04-17 219/week @ 2024-04-24 112/week @ 2024-05-01 87/week @ 2024-05-08 73/week @ 2024-05-15 112/week @ 2024-05-22 88/week @ 2024-05-29 123/week @ 2024-06-05 109/week @ 2024-06-12 150/week @ 2024-06-19 35/week @ 2024-06-26

每月下载量 446

MIT/Apache

26KB
492

cargo-vendor

Build Status Build status

这是一个 Cargo 子命令,它使用 Cargo 的 源替换 支持将所有 crates.io 依赖项部署到本地目录。

安装

目前可以使用以下方式安装

$ cargo install cargo-vendor

您还可以安装为此crate构建的预编译二进制文件。

示例用法

只需在任一 Cargo 项目中运行 cargo vendor

$ cargo vendor
add this to your .cargo/config for this project:

    [source.crates-io]
    replace-with = 'vendored-sources'

    [source.vendored-sources]
    directory = '/home/alex/code/cargo-vendor/vendor'

这将填充 vendor 目录,该目录包含所有 crates.io 依赖项的源代码。配置后,Cargo 将使用此目录而不是查看 crates.io。

请注意,cargo vendor 的输出(所有配置都应在 stdout 上,而其他消息则在 stderr 上),因此您还可以这样做

$ cargo vendor > .cargo/config

来同时部署和初始化您的配置!

标志 --no-merge-sources

如果 vendored Cargo 项目使用了 [replace] 部分,则可能会发生 vendoring 操作失败的情况,例如出现以下错误

found duplicate version of package `libc v0.2.43` vendored from two sources:
...

--no-merge-sources 标志应该可以解决这个问题。请确保直接从标准输出获取 .cargo/config 文件,因为配置变得更加复杂和不可预测。

示例

$ cargo vendor --no-merge-sources > .cargo/config

许可证

本项目采用以下任一许可证

任你选择。

贡献

除非你明确声明,否则根据Apache-2.0许可证定义的,你提交的任何有意包含在cargo-vendor中的贡献,将按照上述方式双授权,不附加任何额外条款或条件。

依赖

~35–48MB
~1M SLoC