簡體   English   中英

為什么貨物構建緩存無效?

[英]Why is cargo build cache invalidating?

我有一個准系統工作區項目:

.
├── build-debug.sh
├── Cargo.lock
├── Cargo.toml
├── common
│   ├── Cargo.toml
│   └── src
│       └── lib.rs
├── rs-test.iml
├── server
│   ├── Cargo.toml
│   └── src
│       └── main.rs
└── wui
    ├── Cargo.toml
    └── src
        └── lib.rs

rs 文件要么是空的,要么只是一個空的主函數。

服務器和 wui 依賴於 common: common = { path = "../common" }

通用項目有一個 crates.io 依賴項,我想是構建腳本或 proc 宏依賴項。

構建腳本:

cargo build -p wui --target wasm32-unknown-unknown
cargo build -p server

問題:

當我重建未更改的項目時,一些 wui 依賴項變得無效/重建,服務器也是如此。

任何一個:

  • 刪除 wasm32 目標標志
  • 使用沒有構建時編譯依賴項的簡單 crate 替換依賴項

它不再重建子項目。

這是貨物錯誤嗎? 我能做什么?

這可能不是貨物錯誤。 這里可能發生的情況是您的 crates.io 依賴項(您沒有提及它是什么,這可能很有用)根據目標架構具有不同的依賴項或功能。 因此,當您在構建 WASM 目標和主機目標之間交替時,正在重建內容。

也許在這種情況下停止使用 Cargo 工作區並分別構建服務器和 wui 會更好; 通過這種方式,您將為服務器和 wui 擁有單獨的target目錄,這會占用一些額外的磁盤空間,並且非增量編譯需要更長的時間,但會阻止您在構建兩者時一直重建這些東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM