如果帮助程序消失,如何从Grunt中的代码调用任务

时间:2012-09-11 22:25:03

标签: javascript node.js gruntjs

Grunt正在删除助手,这已经发生在grunt-contrib。

但是我有一个Grunt文件依赖于调用其中一些帮助程序的一些自定义任务。 没有助手就会破裂。我只是想知道应该用什么方法来替换它们。

我得到的是通过某种方式直接调用任务,但我不确定如何。由于Grunt文档尚未更新,因此一个例子会有很大帮助。

感谢。

1 个答案:

答案 0 :(得分:9)

经过一些研究和grunt-contrib维护者的帮助后,我重写了我的任务:

grunt.registerMultiTask('multicss', 'Minify CSS files in a folder', function() {
    grunt.file.expandFiles(this.data).forEach(function(file) {
        var minified = grunt.helper("mincss", grunt.file.read(file));
        grunt.file.write(file, minified);
        grunt.log.writeln("Minified CSS "+file);
    });
});

进入这个:

grunt.registerMultiTask('multicss', 'Minify CSS files in a folder', function() {
    var count = 0;
    grunt.file.expandFiles(this.data).forEach(function(file) {
        var property = 'mincss.css'+count+'.files';
        var value = {};
        value[file] = file;
        grunt.config(property, value);
        grunt.log.writeln("Minifying CSS "+file);
        count++;
    });
    grunt.task.run('mincss');
});

配置文件中不需要进行其他更改。新的代码片段使用了任务本身而不是已经消失的帮助程序。

这可能不是最好的方法,Grunt 0.4.0可能会再次改变游戏,但它现在可以使用Grunt 0.3.15和grunt-contrib 0.2。