• 如何为Rust项目共享Target目录
  • 发布于 2个月前
  • 174 热度
    0 评论
先让我们看一下不同Rust项目的target文件夹大小:

如果你用Rust或NodeJS编码,你可能会面临一个问题,有许多临时文件夹:target/, node_modules/用于不同的项目,导致你的机器在有限的1tb存储中消耗巨大的空间。

在这篇文章中,主要关注Rust项目。类似的解决方案也适用于其他语言,如NodeJS,它需要大量的空间。本文通过使用共享target目录来指导如何更有效地管理Rust项目中的target文件夹。这种方法有助于减少磁盘空间消耗,并避免跨多个项目重复使用库。


设置共享target目录
要为所有Rust项目设置一个共享的目标目录,请遵循以下步骤:
1,打开或创建位于全局的Cargo配置文件
~/.cargo/config
2,在文件中添加以下几行:
[build]
target-dir = "/path/to/shared/target/directory"
替换“/path/to/shared/target/directory”为你自己的共享target目录。

新项目
在创建一个新的Rust项目时,你不需要在本地Cargo.toml文件中设置关于共享target目录的内容,全局Cargo配置文件(~/.cargo/config)负责为所有项目设置共享target目录。

现有项目
成功设置~/.cargo/config文件后,你只需要在包含Cargo.toml文件的rust项目中执行三个步骤:
1,$ cargo clean,清理项目
2,$ rm -rf target/,删除target目录
3,$ cargo build,重新构造项目
现在,在项目根目录下找不到任何target目录。

局限性
在大多数情况下,使用共享target目录可以很好地工作,但也有一些限制:
cargo clean将删除整个目标目录,从而阻止你清除特定的项目。
不能同时构建1个以上的工程。无论如何,不应该这样做,因为rust编译器使用本地机器的所有内核(默认情况下)。

替代方法
另一种管理target文件夹的方法是使用Rust应用程序或脚本周期性地删除它们,该应用程序或脚本递归地搜索并删除“target”目录。这可以帮助回收磁盘空间,但请记住,需要在删除target文件夹后重新构建项目。
用户评论