externalize
v0.1.1
Published
Create external Browserify bundles for lazy asynchronous loading
Downloads
6
Readme
externalize
Create external Browserify bundles for lazy asynchronous loading
Install
npm install externalize
API
The module exports a single function
externalize(
<parent bundle or array of parent bundles>,
<bundle or arrays of bundles to be externalized from the parent bundles>,
<callback fucntion>
);
Example
Create two bundles where the second one is a subset of the parent and call
externalize(parent, subset, callback)
on them. It will do following:
- Moves all modules that are used in both to the parent one
- Removes those modules from the parent one that are explicitly requireable in the subset one
- It generally tries to do the "right thing"
in code:
var fs = require("fs");
var browserify = require("browserify");
var externalize = require("externalize");
// Parent bundle with an entry point
var parent = browserify("./index.js");
// Make subset bundle from external.js by making it explicitly requireable
var second = browserify().require("./external.js");
// Remove the subset bundle code from the parent
externalize(parent, subset, function(err) {
if (err) throw err;
// Write bundles to files after externalization
parent.bundle.pipe(fs.createWriteStream("bundle/parent.js");
second.bundle.pipe(fs.createWriteStream("bundle/second.js");
});
index.js
// would not work here because external.js is externalized to the subset bundle
// require("./external");
// Use any script loader to load the subset bundle to make the require work
// again
jQuery.getScript("bundle/second.js", function(){
var value = require("./external");
// Alerts: "external module: external module contents"
alert("external module: " + value);
});
external.js:
module.exports = "external module contents";