【问题标题】:Perform arbitrary code in grunt multitask在 grunt 多任务中执行任意代码
【发布时间】:2013-10-15 20:38:39
【问题描述】:

对于某人来说是一个繁琐的语法问题 - 似乎无法在他们的文档中找到答案。假设我有一个像这样设置的 grunt 任务:

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

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

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

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

(谢谢!)- 本

【问题讨论】:

    标签: gruntjs


    【解决方案1】:

    注册一个任务在最后运行:

    grunt.registerTask('end', function() {
      grunt.log.writeln('Im doing things at the end');
      /* ... */
    });
    
    grunt.registerTask('prod', [
        'clean',
        'md5:requireJS',
        'handlebars',
        'md5:cssFile',
        'end'
    ]);
    

    【讨论】:

      【解决方案2】:

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

      exec: {
          arbitraryJS: {
              cmd: function() {
                  // do stuff
      
                  // needed for the task
                  return "";
              }
          }   
      }
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-27
        • 2014-04-16
        • 2014-11-06
        • 2013-02-23
        • 1970-01-01
        • 1970-01-01
        • 2013-08-21
        • 1970-01-01
        相关资源
        最近更新 更多