conditionalify
v1.1.0
Published
Browserify transform to remove code from a Browserify build using conditional comments.
Downloads
20
Maintainers
Readme
conditionalify
Browserify transform to remove code using conditional comments. Comments are evaluated using angular-expressions
.
Installation
$ npm install --save-dev conditionalify
Usage
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
): AnObject
whose keys will be available as variables in the comment expressions - marker (
String
): The character to look for at the start of a comment (beforeif
orendif
)—defaults to#
- ecmaVersion (
Number
): Version of ECMAScript to pass toacorn
when parsing each module - exts (
Array
ofString
s): 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: '@' });