gpt4 book ai didi

javascript - Grunt.js grunt-contrib-watch 事件不触发 grunt.task.run

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

我有一个使用“grunt-contrib-watch”和“grunt-exec”的 Grunt.js 文件,这是因为我想以一种独特的方式使用 handlebars 预编译器的一些自定义功能。

代码:

module.exports = function(grunt) {

grunt.initConfig({
watch: {
src: {
files: ['**/*.hbs']
}
},
exec: {
preCompileTemplate: {
cmd: function(inputFile) {

grunt.log.writeln('DERP DERP' + inputFile);

}
}
}
});

grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-exec');

grunt.event.on('watch', function(action, filepath, target) {
grunt.task.run('exec:preCompileTemplate:' + filepath);
grunt.log.writeln('-------> ' + filepath);
grunt.log.writeln('-------> ' + target);
});

}

我在运行 grunt watch 然后更改 .hbs 文件时遇到的问题,2 grunt.log.writeln---- --> 按预期回显到控制台。

问题是 grunt.task.run 似乎从未运行过,因为控制台日志中从未出现过 DERP DERP DERP

我不能从 grunt-contrib-watcher 中运行任务吗?我做错了吗?

最佳答案

我只是想在文件发生变化时上传一些文件,但在你和 miqid 之间以及大量阅读 shama 的评论之间,我确实找到了一种方法来做到这一点。我想这应该也是您要找的,

var watched_files = 'src/**/*';
var my_command = 'echo ';
module.exports = function(grunt) {
grunt.initConfig({
watch: {
scripts: {
files: watched_files,
tasks: ['exec:whatever'],
options: {
spawn: false,
},
},
},
exec: {
whatever: {
cmd: function() {
var fn = this.config.get('exec.current_file');
return my_command + '"' + fn + '"';
}
},
},
});
grunt.loadNpmTasks('grunt-exec');
grunt.loadNpmTasks('grunt-contrib-watch');

grunt.event.on('watch', function(action, filepath) {
grunt.config('exec.current_file', filepath);
});
};

现在,我对 grunt 还很陌生(比如,今晚学习),所以 也许 肯定有一些聪明或重要的东西我错过了,但这让我有办法运行 curl在刚刚通过运行 grunt watch 更改的文件上执行命令。

关于javascript - Grunt.js grunt-contrib-watch 事件不触发 grunt.task.run,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24254880/

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