
Use matchdep to filter and resolve filepaths to npm module dependencies
Use returned filepaths in your node projects (var load = require('load-modules').load('*')), or load into your project's Grunt config data with templates (<%= _.load("foo*" %>).
Install the module with: npm install load-modules --save
var load = require('load-modules').load(pattern, config);
console.log(load);
// Resolve filepaths to all dependencies from package.json
require('load-modules').load('foo*');
// Resolve filepaths to all devDependencies
require('load-modules').loadDev('bar-*');
// Resolve filepaths to both dependencies and devDependencies
require('load-modules').loadAll('*-baz'));
// Resolve the path to a specific module
require('load-modules').filepath('module-to-resolve');
First, mixin this module's methods so they can be used in Lo-Dash templates:
module.exports = function (grunt) {
// start by adding this line of JavaScript to your Gruntfile
grunt.util._.mixin(require('load-modules'));
grunt.initConfig({...});
grunt.registerTask(...);
};
with the mixins defined, you can use them in templates like this:
grunt.initConfig({
less: {
src: ['<%= _.load("normalize.css") %>', '<%= foo.bar %>', 'theme.less'],
dest: 'dist/'
}
});
Any specified template strings (<%= %>) will be processed when config data is retrieved.
// Resolve filepaths for dependencies
load(pattern, config)
// Resolve filepaths for devDependencies
loadDev(pattern, config)
// Resolve filepaths for all dependencies
loadAll(pattern, config)
// Resolve filepath for a specific module
filepath(pattern, config)
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality.
Jon Schlinkert
Copyright (c) 2013 Jon Schlinkert, contributors. Licensed under the MIT license.