合并load-grunt-config数据选项

时间:2015-10-06 16:54:39

标签: gruntjs

我想设置我的Gruntfile.js来合并来自我们每个环境中不同的文件的特定数据变量。

我们目前正在使用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,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

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

您定义了2个文件:prod.jsondev.json。然后在您的配置中调用<%= stg.varX %>,您将获得与您指定的阶段相对应的文件的值 - 例如,通过调用grunt stage:dev:build