Package Exports
- windowify
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (windowify) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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:
function jQuery(selector) { /* ... */ }
test.js:
var $element = jQuery('#some-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: [ function(require, module, exports) { // jQuery is not global now! function jQuery(selector) { /* ... */ } }, {} ] }, {}, [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: [ function(require, module, exports) { (function(window) { function jQuery(selector) { /* ... */ } // jQuery is global again! window.jQuery = exports.jQuery = jQuery; }).call(window, window); }, {} ] }, {}, [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
:
{
"browserify": {
"transform": [
["windowify", {"files": "**/jquery.js", "debug": true}]
]
}
}
- Command-line usage:
browserify entry-point.js -t [ windowify **/jquery.js --debug ] -o entry-point.bundle.js
- Programmatic usage:
var b = browserify('entry-point.js');
b.transform('windowify', {files: '**/jquery.js', debug: true}]);
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