Nevertheless! Party Metaphorically
Ready to take your JavaScript development to the next level? Meet npm Enterprise - the ultimate in enterprise JavaScript. Learn more »

superimport

1.4.0 • Public • Published

superimport

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);

Methods

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.

Options:
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

install

npm i superimport

Downloadsweekly downloads

55

version

1.4.0

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability