假设我们想把jsonwebtoken 8.2.0添加到Cargo.toml
中,这个crate依赖于ring 0.16.20
,也就是dependent onweb-sys 0.3.60 crate,这个依赖关系是这样声明的:
[target.'cfg(all(target_arch = "wasm32", target_vendor = "unknown", target_os = "unknown", target_env = ""))'.dependencies]
web-sys = { version = "0.3.37", default-features = false, features = ["Crypto", "Window"] }
对于我的项目来说,我不需要任何与JS/WASM相关的东西,但是我注意到在我的Cargo.lock
中,由于web-sys
的原因,添加了一些这样的依赖项(例如wasm-bindgen
)。有没有办法避免这种“噪音”?
1条答案
按热度按时间y4ekin9u1#
锁决定在所有可能的平台上编译时使用的版本,据我所知,没有办法覆盖它。
考虑:不这样做将是一个头痛的问题。如果有人在一个新的平台上克隆你的repo并建立你的板条箱,他们将不得不修改他们的Cargo.lock(并给你发送一个补丁?)。如果你更新了你系统上的一个板条箱依赖项,它只会更新你平台上的锁定版本,其他人可能最终会得到一个不一致的锁。为了避免头痛,让货物来处理货物。锁上它想锁的东西,忽略里面的东西。
如果你想减少一些噪音,并在git输出中隐藏锁文件diffs,你可以将Cargo.lock标记为二进制文件,如here所示:
(虽然我不知道这是否会对windows的行尾产生奇怪的影响。)