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

时间:2015-12-08 17:17:58

标签: gruntjs pug grunt-contrib-jade

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

-blocks
    -header
        -jade
            header.jade
        -html
    -nav
        ...

我想要做的是编译每个块的所有jade文件,然后将html文件发送到相应的html文件夹。我环顾四周但似乎找不到任何东西。我对咕噜声比较陌生,所以我仍然掌握它。我想我可能能够以某种方式使用cwd实现这一目标,但我真的不明白它是如何工作的。我在下面放了一些未经测试的代码/ pseudo-ish

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

1 个答案:

答案 0 :(得分:0)

没有魔力。我发现它将所有的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
   }
  }