Just load devDependencies of the current project or any other dependencies. Useful for any node.js app that needs to load plugins from node_modules. 15-20x times faster alternative to load-plugins and gulp-load-plugins.
npm i load-deps --save
For more use-cases see the tests
const loadDeps = require('load-deps')
Load modules of the current project, by default loads dependencies from
devDependency
property frompackage.json
, but can be customized.
Params
patterns
{String|Array|Function|RegExp|Object}opts
{Object}: see options sectionreturns
{Object}
Example
var appname = require('app-name')
var loadDeps = require('load-deps')
var strip = ['gulp', 'handlebars', 'helpers']
var rename = function renameFn(name) {
return appname(name, strip)
}
var plugin = loadDeps('gulp-*', {renameKey: rename})
gulp.task('default', function () {
gulp.src('test/*.js')
.pipe(plugin.jshint())
.pipe(plugin.mocha())
.pipe(plugin.stylus())
.pipe(plugin.mustache())
.pipe(plugin.istanbul())
})
Pass a custom function for
require
ing files.
var loadDeps = require('load-deps')
var plugin = loadDeps('gulp-*', {
require: function (name) {
// do stuff to name
}
})
Pass a renameKey function to change how plugins are named.
var loadDeps = require('load-deps')
var plugin = loadDeps('my-plugins-*', {
renameKey: function (name) {
return path.resolve(name)
}
})
It is 15-20x faster than load-plugins and gulp-load-plugins.
npm run benchmark
results as of 22 April, 2016
[charlike@voltaire load-deps]$ npm run benchmark
load-plugins x 205 ops/sec ±3.09% (61 runs sampled)
load-deps x 14,297 ops/sec ±10.74% (63 runs sampled)
gulp-load-plugins x 813 ops/sec ±2.27% (62 runs sampled)
Fastest is load-deps
- gulp-load-plugins: Automatically load any gulp plugins in your package.json | homepage
- is-match: Create a matching function from a glob pattern, regex, string, array,… more | homepage
- load-pkg: Loads the package.json from the root of the user's current project. | homepage
- load-plugins: Load plugins for gulp, grunt, assemble, verb any node.js app that… more | homepage
- micromatch: Glob matching for javascript/node.js. A drop-in replacement and faster alternative to… more | homepage
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
But before doing anything, please read the CONTRIBUTING.md guidelines.