identify-resource
Resolve the file paths to js, css, and html dependencies.
Usage
resolve(sourcepath, id, [options]): resolve the path for id
from sourcepath
.
id
can be an absolute filepath, relative filepath, "node_modules" reference, or "node_modules" file reference.
Available options
include:
fileExtensions
: hash of valid file extensions by type, used to resolve ids with missing file extension (default { js: 'js', 'json', css: 'css', html: 'html' }
)sources
: array of source directories (in addition to cwd and "node_modules") in which to search for files (default []
)
$ npm install identify-resource
/projects/myproject/index.js
var bar = require('./bar')
, boo = require('boo')
, http = require('http');
/project/myproject/index.css
@import 'bar';
/projects/myproject/node_modules/boo/package.json
{
"name": "boo",
"version": "1.0.0",
"main": "index.js"
}
var resolve = require('identify-resource').resolve;
console.log(resolve('/projects/myproject/index.js', './bar'));
console.log(resolve('/projects/myproject/index.js', 'boo'));
console.log(resolve('/projects/myproject/index.js', 'http'));
console.log(resolve('/projects/myproject/index.css', 'bar'));
Configuring the package.json browser
field enables overriding default behaviour:
/projects/myproject/package.json
{
"name": "myproject",
"version": "1.0.0",
"main": "index.js",
"browser": {
"http": "./lib/http.js"
}
}
console.log(resolve('/projects/myproject/index.js', 'http'));
See here for more details on using the browser
field.
identify(filepath, [options]): retrieve the id for filepath
. Id's are resolved from the cwd or "node_modules", as appropriate.
var identify = require('identify-resouce').identify;
identify('/projects/myproject/bar.js');
identify('/projects/myproject/boo/index.js');
identify('/projects/myproject/bar.css');
hasMultipleVersions(id): determine if more than one version of id
exists in resolve cache
clearCache(): clear the resolve cache