gpt4 book ai didi

javascript - 使用 grunt 观察并重新编译单个模板

转载 作者:行者123 更新时间:2023-11-30 06:30:06 25 4
gpt4 key购买 nike

我有一个包含一堆 jade templates 的目录, 和一个 grunt将所有这些编译成单独的 html 文件的任务。

我想要一个 watch task它会在模板更改时重新编译模板,但现在我的任务是在每个模板发生更改时重新编译每个模板。

Here is a demo要点。

是否有一种简洁的方法来编写一个任务,在模板更改时重新编译模板,而不是所有其他模板?

最佳答案

解决方案是添加一个filter文件列表的函数:

var fs = require('fs');
var join = require('path').join;
module.exports = function(grunt) {
grunt.initConfig({
jade: {
files: {
src: ['*.jade'],
dest: './',
expand: true,
ext: '.html',
filter: function(destDir, src) {
var dest = join(destDir, src.replace(/jade$/, 'html'));
var destMod;
try {
destMod = +fs.lstatSync(dest).mtime;
} catch (e) {
if (e.code === 'ENOENT') {
// there's no html file, so ensure that the
// jade file is compiled by returning true
return true;
}
throw e;
}
return fs.lstatSync(src).mtime > destMod;
}
}
},
watch: {
files: ['*.jade'],
tasks: ['jade']
}
});

grunt.loadNpmTasks('grunt-contrib-jade');
grunt.loadNpmTasks('grunt-contrib-watch');
};

关于javascript - 使用 grunt 观察并重新编译单个模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18195522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com