4 个版本 (1 个稳定版)
1.0.0 | 2021 年 3 月 1 日 |
---|---|
0.1.2 | 2020 年 4 月 28 日 |
0.1.1 | 2019 年 11 月 21 日 |
0.1.0 | 2019 年 5 月 26 日 |
#987 in 开发工具
每月 1,836 次下载
用于 2 crate
8KB
rerun_except
指定哪些文件不应触发 cargo
重建。
在正常操作中,当任何相关文件更改时,cargo
会重建项目。可以使用 rerun-if-changed
指令告诉 cargo
仅在特定文件更改时重建。然而,在使用 rerun-if-changed
时很容易忘记添加新文件,导致 cargo
在应该重建项目时没有重建。
rerun_except
反转此逻辑,当文件更改时,cargo
会重建项目,除非您明确忽略该文件。这比 rerun-if-changed
更安全,因为如果您忘记明确忽略文件,则 cargo
仍然会重建您的项目。
rerun_except
使用 ignore
库以 gitignore
格式指定要忽略的文件。请注意,您的项目中的显式忽略文件(例如 .gitignore
)将隐式添加到忽略文件列表中。
例如,如果您有以下文件布局
proj/
.gitignore
Cargo.toml
src/
lib.rs
lang_tests/
run.rs
test1.lang
test2.lang
target/
...
并且您不希望两个 .lang
文件触发重建,那么您将告诉 rerun_except
排除 lang_tests/*.lang
。假设,正如常见的那样,您的 .gitignore
文件也包括 target/
目录,那么 rerun_except
也会忽略 target
目录。
添加新的文件,如 lang_tests/test3.lang
不会触发重建(因为它被忽略glob lang_tests/*.lang
覆盖),但添加新的文件,如 build.rs
会触发重建(因为它没有被忽略glob覆盖)。
要以此方式使用 rerun_except
,您只需在 build.rs
文件中调用 rerun_except::rerun_except
并传递一个包含忽略glob的数组,这些glob格式遵循 gitignore
。
use rerun_except::rerun_except;
fn main() {
rerun_except(&["lang_tests/*.lang"]).unwrap();
}
依赖关系
~4–13MB
~133K SLoC