buddy

node MVC discord bot
Log | Files | Refs | README

readme.markdown (3721B)


      1 # resolve
      2 
      3 implements the [node `require.resolve()`
      4 algorithm](http://nodejs.org/docs/v0.4.8/api/all.html#all_Together...)
      5 such that you can `require.resolve()` on behalf of a file asynchronously and
      6 synchronously
      7 
      8 [![build status](https://secure.travis-ci.org/substack/node-resolve.png)](http://travis-ci.org/substack/node-resolve)
      9 
     10 # example
     11 
     12 asynchronously resolve:
     13 
     14 ``` js
     15 var resolve = require('resolve');
     16 resolve('tap', { basedir: __dirname }, function (err, res) {
     17     if (err) console.error(err)
     18     else console.log(res)
     19 });
     20 ```
     21 
     22 ```
     23 $ node example/async.js
     24 /home/substack/projects/node-resolve/node_modules/tap/lib/main.js
     25 ```
     26 
     27 synchronously resolve:
     28 
     29 ``` js
     30 var resolve = require('resolve');
     31 var res = resolve.sync('tap', { basedir: __dirname });
     32 console.log(res);
     33 ```
     34 
     35 ```
     36 $ node example/sync.js
     37 /home/substack/projects/node-resolve/node_modules/tap/lib/main.js
     38 ```
     39 
     40 # methods
     41 
     42 ``` js
     43 var resolve = require('resolve')
     44 ```
     45 
     46 ## resolve(id, opts={}, cb)
     47 
     48 Asynchronously resolve the module path string `id` into `cb(err, res [, pkg])`, where `pkg` (if defined) is the data from `package.json`.
     49 
     50 options are:
     51 
     52 * opts.basedir - directory to begin resolving from
     53 
     54 * opts.package - `package.json` data applicable to the module being loaded
     55 
     56 * opts.extensions - array of file extensions to search in order
     57 
     58 * opts.readFile - how to read files asynchronously
     59 
     60 * opts.isFile - function to asynchronously test whether a file exists
     61 
     62 * opts.packageFilter - transform the parsed package.json contents before looking
     63 at the "main" field
     64 
     65 * opts.pathFilter(pkg, path, relativePath) - transform a path within a package
     66   * pkg - package data
     67   * path - the path being resolved
     68   * relativePath - the path relative from the package.json location
     69   * returns - a relative path that will be joined from the package.json location
     70 
     71 * opts.paths - require.paths array to use if nothing is found on the normal
     72 node_modules recursive walk (probably don't use this)
     73 
     74 * opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"`
     75 
     76 default `opts` values:
     77 
     78 ``` javascript
     79 {
     80     paths: [],
     81     basedir: __dirname,
     82     extensions: [ '.js' ],
     83     readFile: fs.readFile,
     84     isFile: function (file, cb) {
     85         fs.stat(file, function (err, stat) {
     86             if (err && err.code === 'ENOENT') cb(null, false)
     87             else if (err) cb(err)
     88             else cb(null, stat.isFile())
     89         });
     90     },
     91     moduleDirectory: 'node_modules'
     92 }
     93 ```
     94 
     95 ## resolve.sync(id, opts)
     96 
     97 Synchronously resolve the module path string `id`, returning the result and
     98 throwing an error when `id` can't be resolved.
     99 
    100 options are:
    101 
    102 * opts.basedir - directory to begin resolving from
    103 
    104 * opts.extensions - array of file extensions to search in order
    105 
    106 * opts.readFile - how to read files synchronously
    107 
    108 * opts.isFile - function to synchronously test whether a file exists
    109 
    110 * `opts.packageFilter(pkg, pkgfile)` - transform the parsed package.json
    111 * contents before looking at the "main" field
    112 
    113 * opts.paths - require.paths array to use if nothing is found on the normal
    114 node_modules recursive walk (probably don't use this)
    115 
    116 * opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"`
    117 
    118 default `opts` values:
    119 
    120 ``` javascript
    121 {
    122     paths: [],
    123     basedir: __dirname,
    124     extensions: [ '.js' ],
    125     readFileSync: fs.readFileSync,
    126     isFile: function (file) {
    127         try { return fs.statSync(file).isFile() }
    128         catch (e) { return false }
    129     },
    130     moduleDirectory: 'node_modules'
    131 }
    132 ````
    133 
    134 ## resolve.isCore(pkg)
    135 
    136 Return whether a package is in core.
    137 
    138 # install
    139 
    140 With [npm](https://npmjs.org) do:
    141 
    142 ```
    143 npm install resolve
    144 ```
    145 
    146 # license
    147 
    148 MIT