Gruntjs 使用Grunt将Jade编译到相对文件夹

Gruntjs 使用Grunt将Jade编译到相对文件夹,gruntjs,pug,grunt-contrib-jade,Gruntjs,Pug,Grunt Contrib Jade,我正在使用grunt编译我的Jade文件。我的文件夹结构如下所示 -blocks -header -jade header.jade -html -nav ... 我想做的是编译每个块的所有jade文件,然后将html文件发送到相应的html文件夹。我环顾四周,但似乎什么也没找到。我对grunt还比较陌生,所以我仍然掌握着窍门。我在想我也许可以用cwd实现这一点,但我真的不明白它是如何工作的。我在下面放了一

我正在使用grunt编译我的Jade文件。我的文件夹结构如下所示

-blocks
    -header
        -jade
            header.jade
        -html
    -nav
        ...
我想做的是编译每个块的所有jade文件,然后将html文件发送到相应的html文件夹。我环顾四周,但似乎什么也没找到。我对grunt还比较陌生,所以我仍然掌握着窍门。我在想我也许可以用cwd实现这一点,但我真的不明白它是如何工作的。我在下面放了一些未经测试/伪ish的代码

jade:{
    dist:{
        files:{
              src: "blocks/*/jade/*.jade", 
              dest: "html", 
              cwd: ?????? 
              ext: '.html'
             }
           }
       }

没有魔法。我发现它将所有jade文件连接到一个html。下面是我能想出的解决方案:

var jadeDir = 'blocks/*/jade/';
var htmlSources = 'html';
var jadeTransforms = [];

//Read all the jade files and create a html file for each
//To create the jade files create a literal object with src, dest and ext for
 //each file
 var jadefiles = grunt.file.expand({cwd: jadeDir}, '*.jade');
 for (var i =0, len = jadefiles.length; i < len; i++) {
    var jadefile = jadefiles[i];
    jadeTransforms.push({
       src: jadeDir + jadefile,
       dest: htmlSources + jadefile.substring(0, jadefile.indexOf('.jade')) +  '.html',
       ext: "html"
   });
  }
 // Here is my jade setup based on jadeTransforms
  jade:{
   dist:{
     files:jadeTransforms
   }
  }