2017-02-10 6 views
1

私は、文字通りほんの数時間しかつらいことがあります。私はgrunt-cache-breakerを使用して自分のウェブサイトをキャッシュバストするような設定をしています。私は手動ですべてのファイルのソース例を入力したときに、今私はそれが動作するように持っている:外部ファイルからグランタのタスク属性をロードする

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 } 
     } 
    } 
}), 

、あなたが欲しいこれらの他のプロパティで設定オブジェクトを更新します。

関連する問題