Preprocess HTML and JavaScript directives based off environment configuration
npm install grunt-preprocess[![Linux Build Status][linux-ci-image]][linux-ci-url] [![dependencies][deps-image]][deps-url] [![dev-dependencies][dev-deps-image]][dev-deps-url]
Grunt task around preprocess npm module
``html
`js
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-preprocessThen add this line to your project's Gruntfile:
`javascript
grunt.loadNpmTasks('grunt-preprocess');
`Options
#### context
Type:
Object
Default: {NODE_ENV: 'development'}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.#### inline
Type:
Boolean
Default: undefinedRequired to enable overwriting of source files
#### srcDir
Type:
String
Default: The directory where to look for files included via
@include variants and @extend.#### srcEol
Type:
String
Default: EOL of source file or os.EOL if source file contains multiple different or no EOLs.The end of line (EOL) character to use for the preprocessed result. May be one of:
-
\r\n - Windows
- \n - Linux/OSX/Unix
- \r - legacy Mac#### type
Type:
String
Default: file extension of the file to be processed The syntax type of source file to preprocess. See preprocess() description for a list of all supported file types.
Example Usage
`js
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
}
}
`
[grunt]: https://github.com/gruntjs/grunt
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][grunt].Release History
- 5.1.0
- Grunt peer dependency tagged >= 0.4.0, dependency updates
- added explicit dependency on lodash
- added logging for preprocess errors (@marcominetti, #53)
- 5.0.1 fixed processing of mutifile-style tasks for multiple different file extensions or different containing directories (#50)
- 5.0.0 bumped preprocess dep to 3.0.2, implemented backward-compatible mapping of old to new options and pass-through for new options (#34, #39, #48)
- 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` optionWritten by Jarrod Overson
Licensed under the Apache 2.0 license.
[npm-image]: https://nodei.co/npm/grunt-preprocess.png?downloads=true
[npm-url]: https://www.npmjs.com/package/grunt-preprocess
[linux-ci-image]: https://img.shields.io/travis/jsoverson/grunt-preprocess/master.svg?style=flat-square
[linux-ci-url]: https://travis-ci.org/jsoverson/grunt-preprocess
[deps-image]: https://img.shields.io/david/jsoverson/grunt-preprocess.svg?style=flat-square
[deps-url]: https://david-dm.org/jsoverson/grunt-preprocess
[dev-deps-image]: https://img.shields.io/david/dev/jsoverson/grunt-preprocess.svg?style=flat-square
[dev-deps-url]: https://david-dm.org/jsoverson/grunt-preprocess#info=devDependencies