Loads optional node modules from a third part modules folder

Usage no npm install needed!

<script type="module">
  import superimport from '';



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.

Name Default Description
recursive false Includes all subdirectories
silent false Ignore errors
importTypes false Set file extensions to be imported. Uses require.extensions to determine the types by default

Returns an array of all required modules