https://github.com/yyyar/dyn-require
Dynamic loading Node.js modules from filesystem
https://github.com/yyyar/dyn-require
Last synced: 6 months ago
JSON representation
Dynamic loading Node.js modules from filesystem
- Host: GitHub
- URL: https://github.com/yyyar/dyn-require
- Owner: yyyar
- Created: 2014-07-28T10:59:39.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2022-12-06T18:21:48.000Z (almost 3 years ago)
- Last Synced: 2025-04-12T12:07:48.853Z (6 months ago)
- Language: JavaScript
- Size: 53.7 KB
- Stars: 2
- Watchers: 2
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### DynRequire
[](https://travis-ci.org/yyyar/dyn-require) [](http://badge.fury.io/js/dyn-require)
Dynamic loading Node.js modules from filesystem.
#### Intro
Sometimes you need to dynamically scan some directory, load all modules (js or json files) and perform some generic work with all of them.
You need to recoursively scan directories and filter non js files, that causes lots of boilerplate to be written. `DynRequire` solves
this problem for you. Just pass base path, and it will scan all modules and provides it to you as object (relative path) -> (module).
`require`-like syntax also supported!#### Installation
```bash
$ npm install dyn-require
```#### Usage
##### Sync work
```javascript
var DynRequire = require('dyn-require');var modules = new DynRequire(__dirname + '/modules');
/* get all modules as array */
console.log( modules.requireAll() );/* get all modules as object (relative path) -> (module) */
console.log( modules.requireAllEx() );/* require module */
console.log( modules.require('modules/a') );
```##### Async work
If using async method, DynRequire will emit two kind of messages: '`next'` on next module loaded and `'done'` when all modules are scanned and loaded.```javascript
var DynRequire = require('dyn-require');var modules = new DynRequire(__dirname + '/modules', {
async: true
});/* Next module */
modules.on('next', function(relPath, module) {
console.log(relPath, module);
});/* All modules */
modules.on('done', function(allModules, allModulesWithPaths) {
console.log(allModules);// Here you can use
// modules.require and modules.requireAll, etc...
});
```#### Author
* [Yaroslav Pogrebnyak](https://github.com/yyyar/)#### License
MIT