grunt-featureswitch-strip

1.0.2 • Public • Published

Build Status npm version

grunt-featureswitch-strip

Strips disabled features from files as a grunt task. The features are described within specialized HTML or Javascript comments.

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-featureswitch-strip --save-dev

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

grunt.loadNpmTasks('grunt-featureswitch-strip');

The "featureswitch-strip" task

Overview

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

grunt.initConfig({
  `featureswitch-strip`: {
    options: {
        includeHTML: true, // Remove features specified with HTML comments (default true)
        includeJS: false   // Remove features specified with Javascript comments (default false)
    },
    features: 'features,json',
    files: [{
      expand: true,
      cwd: 'src',
      src: ['*.html', 'js/*.js'],
      dest: './tmp/'
    }]
  },
});

Options

options.includeJS

Type: boolean Default value: false

Remove features specified with Javascript comments. Such a feature may look like:

    var username = window.prompt('Username');
    // FEATURE.start(capitalizeInput) //
    username = username.toUpperCase();
    // FEATURE.end(capitalizeInput) //

Note that the parser requires the trailing // on the // FEATURE.end(...) // declaration; this ensures that the parser removes any trailing characters and does not leave unwanted characters in the output.

options.includeHTML

Type: boolean Default value: true

Remove features specified with HTML comments. HTML features are specified like:

<h1>Frankenstein<h1>
<!-- FEATURE.start(showSubTitle) -->
<h2>or, The Modern Prometheus</h2>
<!-- FEATURE.end(showSubTitle) -->

Note that the parser requires the trailing --> on the <!-- FEATURE.end(...) --> declaration; this ensures that the parser removes any trailing characters and does not leave unwanted characters in the output.

features

Type: Object or string Default value: {}

Defines the features to use. Either as an object with all boolean values or the path to a JSON file containing a similar object.

files

Type: string[] Default value: []

Standard grunt file declaration.

Usage Examples

In this example, the file index.html is stripped of any feature switch comments, both HTML and Javascript.

grunt.initConfig({
  'featureswitch-strip': {
    options: {
      includeJS: true
    },
    features: {
      f1: false
    },
    files: [{
      expand: true,
      cwd: 'src',
      src: ['*.html', 'js/*.js'],
      dest: './tmp/'
    }]
  }
});

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.

Readme

Keywords

Package Sidebar

Install

npm i grunt-featureswitch-strip

Weekly Downloads

3

Version

1.0.2

License

none

Unpacked Size

15.1 kB

Total Files

18

Last publish

Collaborators

  • hal313