grunt-konphyg

0.4.1 • Public • Published

grunt-konphyg

Build Status

Grunt task to expand a single configuration file into files to be parsed by Konphyg

Getting Started

This plugin requires Grunt ~0.4.5

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-konphyg --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-konphyg');

The "konphyg" task

Overview

In your project's Gruntfile, add a section named konphyg to the data object passed into grunt.initConfig().

grunt.initConfig({
  konphyg: {
    options: {
      output: 'config',
      src: 'config'
    }
  },
});

Options

options.environments

Type: String Default value: ['development', 'production', 'test']

A list of environment files to be expanded when no target is provided to the Grunt task. By default, this will read all files from the src location in the format:

  • development.json
  • production.json
  • test.json

If you specify a different list, it will be looked up accordingly, e.g. staging looks for the file staging.json

options.indent

Type: String Default value: 2

Number of spaces for indentation for JSON output files

Usage Examples

Default Options

No options are required by default but at least one target is required.

grunt.initConfig({
  konphyg: {
    target: {}
  },
});

Custom Options

The following shows the use of all options.

grunt.initConfig({
  konphyg: {
    options: {
      environments: ['staging', 'qa'],
      indent: 4
    },
    target: {
      files: {
        'config-output-dir': 'config-input-dir'
      }
    }
  },
});

Inline configuration for an environment

You can specify your configuration inline. This is especially useful for development configuration.

This example shows specifying different configuration for a logger module for production and development.

The following files would be created:

  • config-output-dir/logger.json - contains empty object {}
  • config-output-dir/logger.development.json - contains {"level": "debug"}
  • config-output-dir/logger.production.json - contains {"level": "info"}
  • config-output-dir/logger.test.json - contains {"enabled": false}
grunt.initConfig({
  konphyg: {
    files: {
      'config-output-dir': 'config-input-dir'
    },
    development: {
      logger: {
        level: 'debug'
      }
    },
    production: {
      logger: {
        level: 'info'
      }
    },
    test: {
      logger: {
        enabled: false
      }
    }
  },
});

Contributing

  • In lieu of a formal styleguide, take care to maintain the existing coding style.
  • Add unit tests for any new or changed functionality.
  • Lint and test your code using grunt jshint

Release History

0.4

  • 0.4.1: Add Travis CI; add build status to README
  • 0.4.0: Export all configuration via grunt.config so they can be used in other grunt tags

0.3

  • 0.3.1: Minor code formatting and cleanup
  • 0.3.0:
    • Allow inline config specification
    • Use grunt standard src:dest format
    • Add documentation

0.2

  • 0.2.0:
    • Turn into multi-task
    • Handle missing files
    • Always create output dire

0.1

Initial release

Readme

Keywords

Package Sidebar

Install

npm i grunt-konphyg

Weekly Downloads

0

Version

0.4.1

License

none

Last publish

Collaborators

  • matmar10