Loads optional node modules from a third part modules folder
npm install superimport
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
``js`
// 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
`js`
// 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) ../node_modules/logtopus-redis-logger
3) (goes up until /node_modules)
4) return null
And optional second argument overrides the directories which may contain an optional module
`js`
const dirs = ['../foo/node_modules', '../bar/libs/'];
const mod = superimport('somemodule', dirs);
See description above
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