2014-07-03 66 views
0

我正在使用grunt-contrib-jade,我想使用pkg.name和pkg.version構建我的css文件名。我無法做到這一點,希望有人能幫助我。以下是我有:將Grunt Jade選項傳遞到文件

在Gruntfile

compile: { 
    options: { 
     data : { 
      app : '<%= pkg.name %>', 
      version: '<%= pkg.version %>', 
     }, 
     pretty: true 
    } 

然後玉器部分任務在我玉文件我有:

link(href='_assets/css/<%= app %>-<%= version %>.css', rel='stylesheet', media='screen') 

不知道如何從編譯添加數據來自Gruntfile中的jade任務的選項。

預先感謝您的幫助

回答

0

它看起來像你還沒有加載的package.json到你的咕嚕配置的folloing添加到您的咕嚕文件。

grunt.initConfig({ 
    pkg: require("./package.json"),// <---- add this line 
    compile: { 
     options: { 
      data : { 
       app : '<%= pkg.name %>', 
       version: '<%= pkg.version %>', 
      }, 
      pretty: true 
     } 
    } 
}); 

我個人更喜歡將其添加元對象下像如下:

grunt.initConfig({ 
    meta{ 
     pkg: require("./package.json"),// <---- add this line 
    }, 
    compile: { 
     options: { 
      data : { 
       app : '<%= meta.pkg.name %>', // <-- notice i added meta 
       version: '<%= meta.pkg.version %>',// <-- notice added meta 
      }, 
      pretty: true 
     } 
    } 
}); 

,你也可以嘗試以下方法:

var pkg = require("./package.json"); 

grunt.initConfig({ 
    compile: { 
     options: { 
      data : { 
       app : pkg.name, // <-- notice no quotes and no micro templating 
       version: pkg.version ,// <-- notice no quotes and no micro templating 
      }, 
      pretty: true 
     } 
    } 
}); 

這種形式給出不如動態前一個。

+0

感謝您深入瞭解如何做到這一點 – pertrai1