superimport
v1.4.1
Published
Loads optional node modules from a third part modules folder
Downloads
291
Readme
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
// 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:
mymodule/node_modules/logtopus-redis-logger
<cwd>/node_modules/logtopus-redis-logger
../node_modules/logtopus-redis-logger
(goes up until/node_modules
)- 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