Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Implements the node.js require.resolve() algorithm

readme.markdown

resolve

implements the node require.resolve() algorithm such that you can require.resolve() on behalf of a file asynchronously and synchronously

build status

example

asynchronously resolve:

var resolve = require('resolve');
resolve('tap', { basedir: __dirname }, function (err, res) {
    if (err) console.error(err)
    else console.log(res)
});
$ node example/async.js
/home/substack/projects/node-resolve/node_modules/tap/lib/main.js

synchronously resolve:

var resolve = require('resolve');
var res = resolve.sync('tap', { basedir: __dirname });
console.log(res);
$ node example/sync.js
/home/substack/projects/node-resolve/node_modules/tap/lib/main.js

methods

var resolve = require('resolve')

resolve(pkg, opts={}, cb)

Asynchronously resolve the module path string pkg into cb(err, res).

options are:

  • opts.basedir - directory to begin resolving from

  • opts.package - package from which module is being loaded

  • opts.extensions - array of file extensions to search in order

  • opts.readFile - how to read files asynchronously

  • opts.isFile - function to asynchronously test whether a file exists

  • opts.packageFilter - transform the parsed package.json contents before looking at the "main" field

  • opts.paths - require.paths array to use if nothing is found on the normal node_modules recursive walk (probably don't use this)

  • opts.moduleDirectory - directory to recursively look for modules in. default: "node_modules"

default opts values:

{
    paths: [],
    basedir: __dirname,
    extensions: [ '.js' ],
    readFile: fs.readFile,
    isFile: function (file, cb) {
        fs.stat(file, function (err, stat) {
            if (err && err.code === 'ENOENT') cb(null, false)
            else if (err) cb(err)
            else cb(null, stat.isFile())
        });
    },
    moduleDirectory: 'node_modules'
}

resolve.sync(pkg, opts)

Synchronously resolve the module path string pkg, returning the result and throwing an error when pkg can't be resolved.

options are:

  • opts.basedir - directory to begin resolving from

  • opts.extensions - array of file extensions to search in order

  • opts.readFile - how to read files synchronously

  • opts.isFile - function to synchronously test whether a file exists

  • opts.packageFilter - transform the parsed package.json contents before looking at the "main" field

  • opts.paths - require.paths array to use if nothing is found on the normal node_modules recursive walk (probably don't use this)

  • opts.moduleDirectory - directory to recursively look for modules in. default: "node_modules"

default opts values:

{
    paths: [],
    basedir: __dirname,
    extensions: [ '.js' ],
    readFileSync: fs.readFileSync,
    isFile: function (file) {
        try { return fs.statSync(file).isFile() }
        catch (e) { return false }
    },
    moduleDirectory: 'node_modules'
}

resolve.isCore(pkg)

Return whether a package is in core.

install

With npm do:

npm install resolve

license

MIT

Something went wrong with that request. Please try again.