node package manager

tagify

Browserify middleware for embedded compilation options

Browserify middleware for embedded compilation options.

Thanks to specific tags placed in your code you can take control on your bundle : add aliases, ignore modules, modify on the fly the code, and so on..

Tagify comes ad-hoc with two handy tags, alias and ignore : see below how to use them..

Installation

$ npm install tagify

Compatibility

tagify is compatible with brwoserify v1.

Usage

Tagify is a browserify middleware :

var b = require('browserify')();
b.use(require('tagify'))

And then throw tags in your code :

//@browserify-tag {OPTIONS} 
var d = function() .....
//@browserify-ignore 
var fs = require('fs');

Placed in front of a require statement, the required module will be added to the list of ignored modules. Here it actually does b.ignore('fs').

//@browserify-ignore -c 
var fs = require('fs');

Using ignore with the -c or --comment option will comment the require statement in the bundle. Here we'll get :

//@browserify-ignore -c 
//var fs = require('fs'); 

This tag is an extension of node-ignorify.

//@browserify-alias fs-shim 
var fs = require('fs');

Placed in front of a require statement, the required module will be aliased with the module whose name is placed in parameters of the tag. Here it actually does b.alias('fs', 'fs-shim').

//@browserify-alias -r fs-shim 
var fs = require('fs');

Using alias with the -r or --replace option will hard replace the required module with the alias module instead of doing an alias. Here we'll get in the final bundle:

//@browserify-alias -r fs-shim 
var fs = require('fs-shim');

And fs-shim and its dependencies will of course be bundled instead of fs.

This tag is an extension of node-aliasify.

A handler is a function associated to a tag and that will be called each time the parser hits the tag. A handler is in charge to decide what to do with parameters of the tags, the source code, the bundle and so on..

I could write documentation about handler, but.. just look at how alias and ignore handlers are written.

Then, to use your handler:

var myHandler = function() {
};
b.use(require('tagify').handlers({
  'mytag' : myHandler
}));

Like other pre-compilers, tagify has a kind of flags support..

I'll talk about that later, but that looks like that :

//@browserify-alias[shim1] fs-shim1 
//@browserify-alias[shim2] fs-shim2 
var fs = require('fs');
b.use(require('tagify').flags(['shim1']));

Tested with browserify ~v1.16

$ npm test

MIT