JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2
  • Score
    100M100P100Q37286F
  • License MIT

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

Package Exports

  • base-resolver

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (base-resolver) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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'})
  • 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.