爲 Rust 項目共享 Target 目錄
先讓我們看一下不同 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 文件夾後重新構建項目。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/dmhwSs4T7uTgB-hI_OryPA