isomorphic-ensure

1.0.1 • Public • Published

Coveralls – test coverageTravis – build statusDavid – status of dependenciesStability: stableCode style: airbnb

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',
  }},
// …

License

MIT © Tomek Wiszniewski

Package Sidebar

Install

npm i isomorphic-ensure

Weekly Downloads

3

Version

1.0.1

License

MIT

Last publish

Collaborators

  • tomekwi