3 个稳定版本

1.2.0 2021年4月17日
1.1.0 2020年12月12日
1.0.0 2020年12月5日

#395构建工具

Download history 2604/week @ 2024-04-08 2608/week @ 2024-04-15 2574/week @ 2024-04-22 2490/week @ 2024-04-29 2337/week @ 2024-05-06 2239/week @ 2024-05-13 2265/week @ 2024-05-20 2234/week @ 2024-05-27 2348/week @ 2024-06-03 1978/week @ 2024-06-10 2283/week @ 2024-06-17 2421/week @ 2024-06-24 1756/week @ 2024-07-01 1825/week @ 2024-07-08 1725/week @ 2024-07-15 1977/week @ 2024-07-22

7,552 每月下载量
用于 25 个crate(通过 static-files

Unlicense OR MIT

25KB
387

在构建时生成变更检测指令的库

双许可协议下 MITUNLICENSE

功能

自动化生成静态文件变更检测指令的任务。

https://doc.rust-lang.net.cn/cargo/reference/build-scripts.html#change-detection

用法

将依赖项添加到 Cargo.toml

[dependencies]
change-detection = "1.2"

build.rs 中添加调用

use change_detection::ChangeDetection;

fn main() {
    ChangeDetection::path("src/hello.c").generate();
}

这基本上是相同的,只需写下

fn main() {
    println!("cargo:rerun-if-changed=src/hello.c");
}

您还可以使用目录。例如,如果您的资源在 static 目录中

use change_detection::ChangeDetection;

fn main() {
    ChangeDetection::path("static").generate();
}

一次生成调用可以有多个 path 组件

use change_detection::ChangeDetection;

fn main() {
    ChangeDetection::path("static")
        .path("another_path")
        .path("build.rs")
        .generate();
}

使用 path-matchers 库,您可以指定包含/排除过滤器

#[cfg(features = "glob")]
use change_detection::{path_matchers::glob, ChangeDetection};

fn main() {
    #[cfg(features = "glob")]
    ChangeDetection::exclude(glob("another_path/**/*.tmp").unwrap())
        .path("static")
        .path("another_path")
        .path("build.rs")
        .generate();
}

您可以使用此命令查看实际生成的结果

find . -name output | xargs cat

依赖项

~51KB