1.1.0 • Published 10 years ago
conditionalify v1.1.0
conditionalify
Browserify transform to remove code using conditional comments. Comments are evaluated using angular-expressions.
Installation
$ npm install --save-dev conditionalifyUsage
Given the Following script.js:
var data = require('data.json');
/* #if someValue === 'foo' */
var result = require('foo-parser')(data);
/* #endif */
/* #if someValue !== 'foo' */
var result = require('other-parser')(data);
/* #endif */
console.log(result);And the Following Usage:
CLI
$ browserify script.js -o bundle.js \
-t [ conditionalify --context [ --someValue foo ] ]Node
var fs = require('fs');
var browserify = require('browserify');
browserify('./script.js')
.transform('conditionalify', {
context: {
someValue: 'foo'
}
})
.bundle()
.pipe(fs.createWriteStream('bundle.js'));The Following Output Would be Produced:
var data = require('data.json');
/* #if someValue === 'foo' */
var result = require('foo-parser')(data);
/* #endif */
/* #if someValue !== 'foo' */
/* #endif */
console.log(result);Options
The following configuration options are available (and are all optional):
- context (
Object): AnObjectwhose keys will be available as variables in the comment expressions - marker (
String): The character to look for at the start of a comment (beforeiforendif)—defaults to# - ecmaVersion (
Number): Version of ECMAScript to pass toacornwhen parsing each module - exts (
ArrayofStrings): A whitelist of file extensions (without the leading ".")—if a file does not have one of the extensions in the list, it will be ignored by conditionalify—defaults to['js']
Options may be passed in via standard browserify ways:
$ browserify -t [ conditionalify --marker @ ]browserify().transform('conditionalify', { marker: '@' });var conditionalify = require('conditionalify');
browserify().transform(conditionalify, { marker: '@' });