Windowify
Allows regular JavaScript files to expose global variables and functions when bundled with Browserify.
We can find old code written this way:
-
jquery.js:
{/* ... */} -
test.js:
var $element = ;
When we bundle the file with the jQuery
definition, we loose the global reference to jQuery because it is no longer declared in the top level scope:
browserify jquery.js -o jquery.bundled.js
-
jquery.bundled.js:
/* PREAMBLE */})1:{// jQuery is not global now!{/* ... */}} {}{} 1;
This module transforms those files exposing those variables to window:
browserify jquery.js -t windowify -o jquery.bundled.js
-
jquery.bundled.js:
/* PREAMBLE */})1:{{{/* ... */}// jQuery is global again!windowjQuery = exportsjQuery = jQuery;};} {}{} 1;
It also sets window
as the context of the code (for code setting global variables to this
).
Installation
npm install windowify --save-dev
Usage
Like any other browserify transform, you can use in 3 ways:
- Adding the configuration to the
package.json
:
- Command-line usage:
browserify entry-point.js -t [ windowify **/jquery.js --debug ] -o entry-point.bundle.js
- Programmatic usage:
var b = ;b;
Contribute
- Fork it:
git clone https://github.com/rubennorte/windowify.git
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Check the build:
npm run build
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D