1.1.0 • Published 3 years ago

grunt-config v1.1.0

Weekly downloads
1,735
License
MIT
Repository
github
Last release
3 years ago

grunt-config

Build Status Version Prerequisite License: MIT Commitizen friendly Twitter: outa7iME

Easy way to define target specific settings.

Install

From NPM:

npm install grunt-config --save-dev

Usage

Assuming installation via NPM, you can use grunt-config in your gruntfile like this:

module.exports = function (grunt) {
  grunt.initConfig({
    config: {
      dev: {
        options: {
          variables: {
            'environment': 'development'
          }
        }
      },
      prod: {
        options: {
          variables: {
            'environment': 'production'
          }
        }
      }
    }
  });
  grunt.registerTask('trace', function () {
    grunt.log.writeln('Using environment: ' + grunt.config.get('environment'));
  });
  grunt.loadNpmTasks('grunt-config');
  grunt.registerTask('default', ['config:dev', 'trace']);
};

Options

variables

Type: Object

This option is used to define the variables to be exported in grunt.config object.

options: {
  variables: {
    'foo': 'bar'
  }
}

silent

Type: Boolean Default: false

If set to true, removes the output from stdout.

Examples

Environment variable in source (with grunt-replace)

File build/environment.txt:

@@environment

gruntfile:

config: {
  dev: {
    options: {
      variables: {
        'environment': 'development'
      }
    }
  },
  prod: {
    options: {
      variables: {
        'environment': 'production'
      }
    }
  }
},

replace: {
  dist: {
    options: {
      variables: {
        'environment': '<%= grunt.config.get("environment") %>'
      },
      force: true
    },
    files: [
      {
        expand: true, flatten: true, src: ['build/environment.txt'], dest: 'public/'
      }
    ]
  }
}

// development
grunt.registerTask('dev', ['config:dev', 'replace']);

// production
grunt.registerTask('prod', ['config:prod', 'replace']);

Handlebars environment partials (with assemble)

gruntfile:

config: {
  dev: {
    options: {
      variables: {
        'partials': ['assets/partials/dev/*.hbs']
      }
    }
  },
  dist: {
    options: {
      variables: {
        'partials': ['assets/partials/dist/*.hbs']
      }
    }
  }
},

assemble: {
  dist: {
    options: {
      partials: '<%= grunt.config.get("partials") %>',
      ext: '.html'
    },
    files: [
      {
        expand: true, cwd: 'assets/templates', src: ['**/*.hbs'], dest: 'temp/templates'
      }
    ]
  }
}

// development
grunt.registerTask('dev', ['config:dev', 'assemble']);

// production
grunt.registerTask('prod', ['config:prod', 'assemble']);

Dynamic options (with grunt-contrib-concat)

gruntfile:

config: {
  dev: {
    options: {
      variables: {
        'concatOptions': {
          banner: '(function dev () {',
          footer: '}());'
        }
      }
    }
  },
  prod: {
    options: {
      variables: {
        'concatOptions': {
          banner: '(function prod () {',
          footer: '}());'
        }
      }
    }
  }
},

concat: {
  dist: {
    options: {
      process: function (src, filepath) {
        var concatOptions = grunt.config.get('concatOptions');
        return concatOptions.banner + '\n' + src + concatOptions.footer + '\n';
      }
    },
    files: [
      {
        expand: true, flatten: true, src: ['test/fixtures/concat.txt'], dest: 'temp/'
      }
    ]
  }
}

// development
grunt.registerTask('dev', ['config:dev', 'concat']);

// production
grunt.registerTask('prod', ['config:prod', 'concat']);

Dynamic options using grunt templates (with grunt-contrib-concat)

config: {
  dev: {
    options: {
      variables: {
        'concatOptions': {
          banner: '(function dev () {',
          footer: '}());'
        }
      }
    }
  },
  prod: {
    options: {
      variables: {
        'concatOptions': {
          banner: '(function prod () {',
          footer: '}());'
        }
      }
    }
  }
},

concat: {
  dist: {
    options: {
      banner: '<%= grunt.config.get("concatOptions").banner %>',
      footer: '<%= grunt.config.get("concatOptions").footer %>'
    },
    files: [
      {
        expand: true, flatten: true, src: ['test/fixtures/concat.txt'], dest: 'temp/'
      }
    ]
  }
}

// development
grunt.registerTask('dev', ['config:dev', 'concat']);

// production
grunt.registerTask('prod', ['config:prod', 'concat']);

Prevent stdout on production environment

gruntfile:

config: {
  dev: {
    options: {
      variables: {
        'environment': 'development'
      }
    }
  },
  prod: {
    silent: true,
    options: {
      variables: {
        'environment': 'production'
      }
    }
  }
}

License

MIT © outaTiME

1.1.0

3 years ago

1.0.0

8 years ago

0.4.0

9 years ago

0.3.1

9 years ago

0.3.0

9 years ago

0.2.2

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.8

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

11 years ago

0.1.3

11 years ago

0.1.2

11 years ago

0.1.1

11 years ago

0.1.0

11 years ago