0.3.4 • Published 8 years ago

base-resolver v0.3.4

Weekly downloads
2
License
MIT
Repository
github
Last release
8 years ago

base-resolver NPM version Build Status

'base-methods' plugin for resolving and loading globally installed npm modules.

Install

Install with npm

$ npm i base-resolver --save

Usage

var resolver = require('base-resolver');

Example

In two steps, the following example shows how we would use base-resolver with a custom Generate application that is built on top of base-methods.

Step 1: Setup

The following example shows how we might begin creating a basic project generator from base-methods. More specifically, this shows how we might register and cache generators.

var resolver = require('base-resolver');
var Generate = require('base-methods');

// register a "global" plugin, to initialize the `generators` 
// object, and decorate a `register` method (as an alternative 
// to inheriting base-methods or other more complicated approaches)
Generate.use(function(app) {
  app.generators = {};
  app.define('register', function(key, config) {
    this.generators[key] = config;
    return this;
  });
});

// register `resolver` as a global plugin
Generate.use(resolver('generate'));

Step 2

Intantiate the custom application we just created, and search for generators!

var generate = new Generate();

// setup a listener that will register generators (
// `config`s) as they're emitted
generate.on('config', function(config) {
  console.log('registered:', config.alias);
  generate.register(config.alias, config);
});

// find configs!
generate
  .resolve('generate-*/generator.js', {
    cwd: require('global-modules')
  });
  .resolve('generate-*/generator.js', {
    cwd: process.cwd()
  });

API

Params

  • name {String}: Optionally specify a namespace for storing resolved configs.
  • options {Object}: Options to pass to matched
  • option.patterns {String|Array}: Glob patterns to search
  • option.cwd {String}: The starting directory to search from
  • returns {Object}

Example

resolver.on('config', function(config) {
  // do stuff with "config"
});

resolver
  .resolve('foo', {pattern: 'generator.js', cwd: 'foo'})
  .resolve('bar', {pattern: 'generator.js', cwd: 'bar'})
  .resolve('baz', {pattern: 'generator.js', cwd: 'baz'})

Related projects

  • global-modules: The directory used by npm for globally installed npm modules. | homepage
  • matched: Adds array support to node-glob, sync and async. Also supports tilde expansion (user home) and… more | homepage
  • npm-paths: Returns an array of unique "npm" directories based on the user's platform and environment. | homepage
  • resolve-modules: Resolves local and global npm modules that match specified patterns, and returns a configuration object… more | homepage

Running tests

Install dev dependencies:

$ npm i -d && npm test

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Author

Jon Schlinkert

License

Copyright © 2015 Jon Schlinkert Released under the MIT license.


This file was generated by verb on December 14, 2015.

0.3.4

8 years ago

0.3.3

8 years ago

0.3.2

8 years ago

0.3.1

8 years ago

0.3.0

8 years ago

0.2.1

8 years ago

0.2.0

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago