/grunt-mincerrc

Run Mincer by .mincerrc files

Primary LanguageJavaScriptMIT LicenseMIT

grunt-mincerrc

Run Mincer by .mincerrc files

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-mincerrc --save-dev

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

grunt.loadNpmTasks('grunt-mincerrc');

The "mincerrc" task

Overview

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

grunt.initConfig({
  mincerrc: {
    options: {
      // Task-specific options go here.
    },
    your_target: {
      // Target-specific file lists and/or options go here.
    },
  },
});

Options

options.clean

Type: Boolean Default value: false

Specifies whether to clean output before build

options.compress

Type: Boolean Default value: false

Specifies whether to gzip assets.

options.digest

Type: Boolean Default value: true

Specifies whether to include a digest identifier in filenames.

options.embedMappingComments

Type: Boolean Default value: false

Specifies whether to embed source-map comments into the merged assets.

options.enable

Type: Array Default value: []

An array containing features to be enabled in the environment

options.engines

Type: Object Default value: {}

An object containing configuration options for each of mincer's engines.

options.files

Type: Array Default value: []

Environment files to be merged with .mincerrc specific files, such as application.js.

options.helpers

Type: Object Default value: {}

An object containing helper methods to be available during build.

options.include

Type: Array Default value: []

Environment paths to be merged with .mincerrc specific paths.

options.manifest

Type: String Default value: 'manifest.json'

Specifies the filename of json manifest. Set to false if no manifest should be written at all.

options.output

Type: String Default value: ''

Output path to override .mincerrc output path.

options.sourceMaps

Type: Boolean Default value: false

Specifies whether to compile source-maps. When set, the corresponding environment-feature is auto-enabled.

Usage Examples

Default Options

Provide paths to .mincerrc-files

grunt.initConfig({
  mincerrc: {
    default_options: {
      options: {
        clean: true
      },
      cwd: 'app',
      src: ['**/.mincerrc']
    }
  }
});

Custom Options

Apply custom options to .mincerrc builds

grunt.initConfig({
  mincerrc: {
    custom_options: {
        options: {
          clean: true,
          enable: [
            'autoprefixer'
          ],
          engines: {
            Coffee: {
              bare: true
            }
          },
          helpers: {
            asset_path: function(logicalPath) {
              var
                base = 'public/_assets/',
                asset = this.findAsset(logicalPath);
              if (asset) {
                return base + asset.digestPath;
              }
              return base + logicalPath;
            }
          },
          jsCompressor: 'uglify',
          cssCompressor: 'csswring',
          sourceMaps: true,
          embedMappingComments: true,
          compress: true
        },
        cwd: 'tmp/custom_options',
        src: ['**/.mincerrc']
      }
  }
});

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.

Release History

v0.0.5 - Fixed missing packages, Fixed tests

v0.0.4 - Fixed missing packages (Unstable)

v0.0.3 - Added manifest and digest options, allowing for building assets to their logical path and without manifest. Build from environment files such as application.js in addition to .mincerrc-files. (Unstable)

v0.0.2 - Added custom options