Rust crate 依赖项可以全局安装吗?

问题描述 投票:0回答:1

我正在使用 Nx、Rust 和 TS 创建一个 monorepo。 Rust 代码被划分在板条箱中,由于我使用的是 Nx,所以我没有使用 Cargo Workspaces。我现在面临的问题是,每次重新安装它所依赖的板条箱的依赖项,都不必要地增加了

target/debug/deps
的大小。

我正在寻找一种在统一(可能是全局)位置安装/存储依赖项的方法,这可以减少这种依赖项重复,就像 pnpm 对 javascript 所做的那样。我知道 Cargo 已经在全局缓存了包的源代码,这很棒,但它仍然将编译后的对象存储在

target/debug/deps
.

rust dependency-management rust-cargo monorepo nrwl-nx
1个回答
1
投票

这是不可能的,但正如 @drewtato 所说,您可以使用 sccache 来缓存板条箱以加快构建时间。您还可以尝试使用更快的链接器(如 Mold)来加速链接,并使用 Cranelift 代码生成后端进行 Rust。

使用 sccache(安装后): (改编自 sccache 自述文件) 将其添加到您的全局货物配置

$HOME/.cargo/config.toml
或项目货物配置
project/.cargo/config.toml

[build]
rustc-wrapper = "/path/to/sccache"

您还可以使用环境变量

export RUSTC_WRAPPER=/path/to/sccache

© www.soinside.com 2019 - 2024. All rights reserved.