2015-10-06 42 views
0

我想設置我的Gruntfile.js以合併來自每個環境中不同文件的特定數據變量。合併load-grunt-config數據選項

目前,我們正在使用load-grunt-config擴展這樣的:

module.exports = function (grunt) { 

    require('load-grunt-config')(grunt, { 
    init: true, 
    data: { //data passed into config. Can use with <%= test %> 
     pkg: grunt.file.readJSON('package.json'), 
     var1: 'var1', 
     var2: 'var2', 
     var3: 'var3', 
    } 
    }); 

    ... 

但我想要做這樣的事情:

module.exports = function (grunt) { 

    require('load-grunt-config')(grunt, { 
    init: true, 
    data: jQuery.extend(
     grunt.file.readJSON('grunt-data.json'), 
     grunt.file.readJSON('grunt-data-environment.json'), 
    ) 
    }); 

    ... 

併成立了我的數據文件,如:

//grunt-data.json 
{ 
    pkg: grunt.file.readJSON('package.json'), 
    var1: 'var1', 
    var2: 'var2', 
    var3: 'var3', 
} 

..

//grunt-data-environment.json ON DEV 
{ 
    var3: 'var3-dev', 
} 

..

//grunt-data-environment.json ON PROD 
{ 
    var1: 'var1-prod', 
} 

使用<%= varX %>在我的任務相應的變量替代的時候會用到這樣。

很抱歉,我不能在這裏使用jQuery,有沒有辦法做到這一點?

回答

0

使用grunt-stagehttps://www.npmjs.com/package/grunt-stage - 完全披露:我是該插件的作者)。

您定義了2個文件:prod.jsondev.json。然後在您的配置中調用<%= stg.varX %>,並獲得與您指定的階段相對應的文件的值 - 例如,通過調用grunt stage:dev:build