Override node's builtin require to use browserify transform streams directly in node
This is handy for a few reasons, for example using
installify to automatically install
missing dependencies, es6ify to get a
bunch of ES6 features without needing to use the
--harmony flag, or
sweetify to get hygenic macros from
You can find a list of browserify transforms here.
The easiest way to get started is from the command-line, using the
argument as you would with browserify to add transforms:
# Install the command-line tool globally$ npm install -g deviant# Followed by your source transform modules:$ npm install coffeeify installify# Then you're good to go:$ deviant -t coffeeify -t installify ./index.coffee
If you prefer to load deviant directly, you just have to run the following code before making any other calls to require:
// Specify the transforms you want to use// here, if anyrequire'deviant''es6ify''sweetify''installify'// Now you can make require calls// as usual, but with transforms// enabledrequire'./app'
Launching a new process is expensive – especially when it's pulling in a lot of
dependencies – so a TCP server is created and kept alive, with
used to spawn light processes which just pipe the data onto the server while
still blocking the main loop. The server has to be run in a separate process,
execSync will block it and prevent the response from ever
Overriding require is done by replacing
// This will read in all of your dependencies// uppercased, and probably breaking them in// the process:var Module = require'module'var _compile = Moduleprototype_compilecontent = contenttoUpperCasereturn _compilecallthis content filename
MIT. See LICENSE.md for details.