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