isomorphic-ensure
v1.0.1
Published
Use webpack loaders seamlessly – in node as well as in the browser.
Downloads
64
Maintainers
Readme
isomorphic-ensure
Use webpack loaders seamlessly – in node as well as in the browser.
And that almost for free. Around 160 bytes is all you’ll add to the browser bundle – including boilerplate code. Measured minzipped when raw-loader and json-loader are used.
Installation
$ npm install isomorphic-ensure
Usage
1) Wire things up.
if (typeof require.ensure !== 'function') require.ensure =
require('isomorphic-ensure')({
// If you want to use loaders, pass them through options:
loaders: {
raw: require('raw-loader'),
json: require('json-loader'),
},
// If you require local files, pass the current location:
dirname: __dirname,
})
;
2) Profit!
// …later in the same file:
require.ensure(
['./other-module', 'raw!./data.xml', 'tape', 'json!tape/package.json'],
(require) => {
// Local scripts:
const otherModule = require('./other-module');
// Local files via a loader:
const data = require('raw!./data.xml');
// Node modules:
const tape = require('tape');
// Node module files via a loader:
const tapeManifest = require('json!tape/package.json');
// Wow! It just works!
}
);
3) If you’re using webpack, update your config.
// …
resolve: {alias: {
'isomorphic-ensure': 'isomorphic-ensure/mock',
'raw-loader': 'isomorphic-ensure/mock',
'json-loader': 'isomorphic-ensure/mock',
}},
// …