Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including superimport with all npm packages installed. Try it out:

var superimport = require("superimport")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

superimport v1.4.0

Loads optional node modules from a third part modules folder


Build Status

Tries to import a node module from the parent module dir or current working dir. This was build for the logtopus logger. We need a way to load optional modules from the $PROJECT_DIR/node_modules/ dir which is using logtopus, to load optional dependencies.

For example:

The logtopus module should load logtopus-redis-logger, but not from its own node_modules directory. It should be load from $PROJECT_DIR/node_modules folder. This gives developers the opportunity to load optional dependencies from the $PROJECT folder.

The logtopus module loads an optional module with superimport

// logtopus/index.js
const superimport = require('superimport');
const redisLogger = superimport('logtopus-redis-logger');

A third part module uses logtopus and contains the optional module as a dependency

// mymodule/example.js
const logtopus = require('logtopus');

In this example tries logtopus to require logtopus-redis-logger in this order:

  1. mymodule/node_modules/logtopus-redis-logger
  2. <cwd>/node_modules/logtopus-redis-logger
  3. ../node_modules/logtopus-redis-logger (goes up until /node_modules)
  4. return null

And optional second argument overrides the directories which may contain an optional module

const dirs = ['../foo/node_modules', '../bar/libs/'];
const mod = superimport('somemodule', dirs);


superimport(str moduleName [, arr importDirs])

See description above

superimport.importAll(arr dir [, obj options])

Imports all .js or .node files from dir. The second options argument is optional and changes the behaviour. Prior version 1.3.0, the second argument was a boolean and enabled recursive search. This is deprecated now.

recursivefalseIncludes all subdirectories
silentfalseIgnore errors
importTypesfalseSet file extensions to be imported. Uses require.extensions to determine the types by default

Returns an array of all required modules

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free