2012-12-12 84 views
1

是否可以讀取與每個子主題和變量相關的JSON文件並通過grunt.js動態生成構建過程?使用Grunt.js動態構建過程

具體而言,我有一個標準grunt.initConfig(),用於在外部themes.json文件中的每個JSON對象,我要重複的主grunt.initConfig()的整個構建過程,但我需要通過經由與相關聯的元變量(並不總是相同)每個孩子主題到構建過程。

我花了很多時間來研究它,我開始認爲grunt.js只是不能適應我正在尋找的構建過程。我認爲,通過在這樣

module.exports = function(grunt) { 
    grunt.initConfig({ 
    pkg: '<json:package.json>', 
    _themes: '<json:themes.json>', 
    recess : 'foo', 
    concat : 'bar', 
    mincss : 'baz 
} 

自定義meta值創建鏡像層次結構,然後裏面的themes.json再次鏡像該結構,但呼喚根配置文件中像這樣

{ 
    "themFoo" : { 
     "_meta_val_1" : "x", 
     "_meta_val_2" : "y", 
     "_meta_val_3" : "z", 
     "recess" : "<%= recess %>", 
     "concat" : "<%= concat %>", 
     "mincss" : "<%= min %>" 
    } 

那我可以獲得默認的配置,只需使用模板變量填充空格,但似乎不能這樣工作。

回答

2

本Alman,Grunt.js的作者還跟這裏解釋任何人都希望做什麼,我已經概述上面:

https://github.com/gruntjs/grunt/issues/568#issuecomment-11335941

從本質上講,我會對此不正確,不意識到JSON結構在頂層是不可協商的。您可以在頂級函數下嵌套可選和/或多個文件,輸出等,但這些頂級JSON數據項是爲原生函數和擴展保留的。

這裏是我是如何能夠完成我上面列出一個要點: https://gist.github.com/4294776