Resolve package dependencies.
var pkgDeps = require( '@stdlib/_tools/pkgs/deps' );Asynchronously resolves package dependencies.
var pkgs = [ 'tape', 'browserify' ];
pkgDeps( pkgs, clbk );
function clbk( error, results ) {
if ( error ) {
throw error;
}
console.dir( results );
}Each package is represented by an object having the following fields:
- pkg: package name, as specified in
pkgs. - dir: package directory path.
- files: an
arrayof module dependencies. - deps: an
arrayof package dependencies. - devDeps: an
arrayof package dev dependencies. Note that this field is only present ifoptions.devistrue.
The function accepts the following options:
- dir: root directory from which to resolve packages. May be either an absolute path or a path relative to the current working directory.
- builtins:
booleanindicating whether to include built-in package dependencies. Default:false. - dev:
booleanindicating whether to resolve dev dependencies. Default:false.
By default, the function resolves packages relative to the current working directory. To resolve relative to an alternative directory, set the dir option.
var opts = {
'dir': '/foo/bar/baz'
};
var pkgs = [ 'tape', 'browserify' ];
pkgDeps( pkgs, opts, clbk );
function clbk( error, results ) {
if ( error ) {
throw error;
}
console.dir( results );
}Synchronously resolves package dependencies.
var pkgs = [ 'tape', 'browserify' ];
var results = pkgDeps.sync( pkgs );
// returns [...]The function accepts the same options as pkgDeps() above.
var resolve = require( 'path' ).resolve;
var pkgDeps = require( '@stdlib/_tools/pkgs/deps' );
var pkg = resolve( __dirname, '../' );
var pkgs = [ pkg, 'tape' ];
var opts = {
'dev': true
};
pkgDeps( pkgs, opts, clbk );
function clbk( error, results ) {
if ( error ) {
throw error;
}
console.dir( results );
}Usage: pkg-deps [options] [<pkg> <pkg> <pkg> ...]
Options:
-h, --help Print this message.
-V, --version Print the package version.
--dir dir Base directory.
--builtins Include built-in package dependencies.
--dev Resolve dev dependencies.
--split sep Separator for stdin data. Default: '/\r?\n/'.
-
If the split separator is a regular expression, ensure that the
splitoption is properly escaped.# Not escaped... $ echo -n $'tape\nbrowserify\n' | pkg-deps --split /\r?\n/ # Escaped... $ echo -n $'tape\nbrowserify\n' | pkg-deps --split /\\r?\\n/
-
Results are printed to
stdoutas newline-delimited JSON (NDJSON).
$ pkg-deps tape browserify
{...}
{...}$ echo -n $'tape\nbrowserify\n' | pkg-deps --split /\\r?\\n/
{...}
{...}