Skip to content

juansev/grunt-preprocess

 
 

Repository files navigation

grunt-preprocess Build Status

Grunt task around preprocess npm module

What does it look like?

<head>
  <title>Your App</title>

  <!-- @if NODE_ENV='production' -->
  <script src="some/production/lib/like/analytics.js"></script>
  <!-- @endif -->

</head>
<body>
  <!-- @ifdef DEBUG -->
  <h1>Debugging mode - <!-- @echo RELEASE_TAG --> </h1>
  <!-- @endif -->
  <p>
  <!-- @include welcome_message.txt -->
  </p>
</body>
var configValue = '/* @echo FOO */' || 'default value';

// @ifdef DEBUG
someDebuggingCall()
// @endif

See preprocess documentation for more information

Getting Started

Install this grunt plugin next to your project's Gruntfile with: npm install --save-dev grunt-preprocess

Then add this line to your project's Gruntfile:

grunt.loadNpmTasks('grunt-preprocess');

Options

inline

Type: Boolean Default: undefined

Required to enable overwriting of source files

context

Type: Object Default: {}

The additional context on top of ENV that should be passed to templates. If NODE_ENV is not set, the task sets it to development by default.

Example Usage

preprocess : {
  options: {
    context : {
      DEBUG: true
    }
  },
  html : {
    src : 'test/test.html',
    dest : 'test/test.processed.html'
  },
  js : {
    src : 'test/test.js',
    dest : 'test/test.processed.js'
  },
  multifile : {
    files : {
      'test/test.processed.html' : 'test/test.html',
      'test/test.processed.js'   : 'test/test.js'
    }
  },
  inline : {
    src : [ 'processed/**/*.js' ],
    options: {
      inline : true,
      context : {
        DEBUG: false
      }
    }
  },
  all_from_dir: {
    src: '**/*.tmpl',
    ext: '.html',
    cwd: 'src',
    dest: 'build',
    expand: true
  }
}

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

  • 4.2.0 bumped preprocess dep to 2.3.1, bumped dev dependencies
  • 4.1.0 bumped preprocess dep to 2.1.0
  • 4.0.0 Switched order of context assignment, small change but necessitated major version
  • 3.0.1 Fixed issue arising from undefined options (#19)
  • 3.0.0 Updated dependencies, added merge from global options context to subtask context (#13)
  • 2.3.0 Updated preprocess, changes default handling to html
  • 2.2.0 Delegating to grunt's file.read/write for consistent usage within grunt (e.g. deep writes)
  • 2.1.0 updated preprocess dependency
  • 2.0.0 updated for grunt 0.4.0, moved context override to context option
  • 1.3.0 Moved logic to 'preprocess' npm module
  • 1.2.1 Added @include to include external files
  • 1.2.0 Added @include to include external files
  • 1.1.0 Added ability to process multiple destinations in a files block
  • 1.0.0 Changed syntax, added directives
  • 0.4.0 Added support for inline JS directives
  • 0.3.0 Added insert, extended context to all environment
  • 0.2.0 Added simple directive syntax
  • 0.1.0 Initial release

License

Written by Jarrod Overson

Licensed under the Apache 2.0 license.

About

Preprocess files based off environment configuration

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 96.4%
  • HTML 2.5%
  • CoffeeScript 1.1%