2017-02-10 53 views
1

我對grunt來說相當陌生,從字面上看只有幾個小時。我正在使用grunt-cache-breaker設置grunt來緩存我的網站。現在,我已經得到了它,當我手動輸入每個文件源示例工作:從外部文件加載Grunt任務屬性

grunt.initConfig({

cachebreaker: { 
     dev: { 
      options: { 
       match: ['.js', '.css', 'min.css'], 
       src: { 
        path: 'TEST/Apps/**/*' 
       } 
      }, 
      files: { 
       src: ['TEST/Apps/AppTemplate/v1.0.0/index.html', 
         'TEST/Apps/Case_Attributes/v1.0.0/index.html', 
         'TEST/Apps/Case_CorrespondenceReferences/v1.0.0/index.html', 
       ',  
       ] 
      } 
     }, 
    }, 

});

但是我真正想要做的是能有問題從預先生成的文本文件,這樣構築files.src名單:

grunt.initConfig({ 

    cachebreaker: { 
     dev: { 
      options: { 
       match: ['.js', '.css', 'min.css'], 
       src: { 
        path: 'TEST/Apps/**/*' 
       } 
      }, 
      files: { 
       src: function(){ 
        return grunt.file.read('config.txt') 
       } 

      } 
     }, 
    }, 

});

或其他影響。這可能嗎?還是我完全不符合標準?

回答

1

幾個小時的遊戲後,我想出了這個解決方案:

module.exports = function(grunt) { 

grunt.initConfig({ 

    config: grunt.file.readJSON('config.json'), 

    cachebreaker: { 
     dev: { 
      options: { 
       match: ['.js', '.css', 'min.css'], 
       src: { 
        path: 'TEST/Apps/**/*' 
       } 
      }, 
      files: { 
       src: ['<%= config %>'], 
      } 
     }, 
    }, 
}); 
grunt.loadNpmTasks('grunt-cache-breaker'); 
grunt.registerTask('default', ['cachebreaker']); 

}; 
0

不同的和非常靈活的方式做到這一點是產生在運行時的任務參數。 假設您將文件名列表載入數組list。在傳喚後grunt.initConfig()你可以這樣做:

grunt.config.merge({ 
    cachebreaker: { 
     dev: { 
      files: { src: list } 
     } 
    } 
}), 

也就是說,你想這些其他屬性更新配置對象。