conditionalify

1.1.0 • Public • Published

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): An Object whose keys will be available as variables in the comment expressions
  • marker (String): The character to look for at the start of a comment (before if or endif)—defaults to #
  • ecmaVersion (Number): Version of ECMAScript to pass to acorn when parsing each module
  • exts (Array of Strings): 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: '@' });

Dependencies (4)

Dev Dependencies (7)

Package Sidebar

Install

npm i conditionalify

Weekly Downloads

6

Version

1.1.0

License

MIT

Last publish

Collaborators

  • minznerjosh