Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • pristine-tar
  • upstream
  • stretch-backports
  • debian/4.0.0-2
  • debian/4.0.0-1
  • upstream/4.0.0
  • debian/3.0.0.REALLY.2.1.0-1_bpo9+1
  • debian/3.0.0.REALLY.2.1.0-1
  • upstream/3.0.0.REALLY.2.1.0
  • debian/3.0.0-1
  • upstream/3.0.0
12 results

node-import-lazy

  • Clone with SSH
  • Clone with HTTPS
  • import-lazy Build Status

    Import a module lazily

    Install

    $ npm install import-lazy

    Usage

    // Pass in `require` or a custom import function
    const importLazy = require('import-lazy')(require);
    const _ = importLazy('lodash');
    
    // Instead of referring to its exported properties directly…
    _.isNumber(2);
    
    // …it's cached on consecutive calls
    _.isNumber('unicorn');
    
    // Works out of the box for functions and regular properties
    const stuff = importLazy('./math-lib');
    console.log(stuff.sum(1, 2)); // => 3
    console.log(stuff.PHI); // => 1.618033

    Warning: Destructuring will cause it to fetch eagerly

    While you may be tempted to do leverage destructuring, like this:

    const {isNumber, isString} = importLazy('lodash');

    Note that this will cause immediate property access, negating the lazy loading, and is equivalent to:

    import {isNumber, isString} from 'lodash';

    Related

    • resolve-from - Resolve the path of a module from a given path
    • import-from - Import a module from a given path
    • resolve-pkg - Resolve the path of a package regardless of it having an entry point
    • lazy-value - Create a lazily evaluated value
    • define-lazy-prop - Define a lazily evaluated property on an object

    License

    MIT © Sindre Sorhus