为Rust项目共享Target目录

508次阅读  |  发布于8月以前

先让我们看一下不同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目录可以很好地工作,但也有一些限制:

替代方法

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

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8