load-modules

Load the resolved filepaths to npm modules, either directly in your config or from Underscore/Lo-Dash templates.

npm install load-modules
4 downloads in the last month

load-modules NPM version

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*" %>).

Getting started

Install the module with: npm install load-modules --save

var load = require('load-modules').load(pattern, config);
console.log(load);

Examples

// 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');

More examples →

Lo-dash templates

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.

More examples →

Usage

// 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)

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality.

Author

Jon Schlinkert

Release History

  • 2013-09-07 v0.1.0 First commit.

License

Copyright (c) 2013 Jon Schlinkert, contributors. Licensed under the MIT license.

npm loves you