在grunt多任务中执行任意代码

时间:2013-10-15 20:38:40

标签: gruntjs

某人的咕噜咕噜的语法问题 - 似乎无法在他们的文档中找到答案。假设我有一个如此设置的咕噜声任务:

grunt.registerTask('prod', [
    'clean',
    'md5:requireJS',
    'handlebars',
    'md5:cssFile',
]);

我需要在它的末尾执行一些任意代码,例如

grunt.registerTask('prod', [
    'clean',
    'md5:requireJS',
    'handlebars',
    'md5:cssFile',
    function() { ... }
]);

从语法上讲,似乎创建新目标似乎没有任何用处,因为它只是一个对象,而不是一个函数。任何的想法...?我在这里吠叫错了吗?

(谢谢!) - Ben

2 个答案:

答案 0 :(得分:1)

注册要在最后运行的任务:

grunt.registerTask('end', function() {
  grunt.log.writeln('Im doing things at the end');
  /* ... */
});

grunt.registerTask('prod', [
    'clean',
    'md5:requireJS',
    'handlebars',
    'md5:cssFile',
    'end'
]);

答案 1 :(得分:0)

没关系,我找到了解决方法。我找到了grunt-exec任务,它真的用于运行shell脚本。我把它简化为简单的运行JS,例如,

exec: {
    arbitraryJS: {
        cmd: function() {
            // do stuff

            // needed for the task
            return "";
        }
    }   
}

然后在我的任务列表的末尾添加了“exec:arbitraryJS”。