Компилировать Jade в относительную папку с Grunt

Я использую grunt для компиляции моих файлов Jade. Моя структура папок выглядит следующим образом

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

Я хочу скомпилировать все jade-файлы для каждого блока, а затем отправить html-файлы в соответствующую html-папку. Я посмотрел вокруг, но не могу найти что-нибудь. Я относительно новичок, чтобы ворчать, так что я все еще понимаю это. Я думаю, что смогу как-то добиться этого с помощью cwd, но я не совсем понимаю, как это работает. Я поместил код ниже, который не проверен / псевдо-иш

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

1 ответ

Там нет магии. Я обнаружил, что он объединяет все файлы 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
   }
  }
Другие вопросы по тегам