This repository is no longer maintained.
module-grapher
resolves CommonJS module dependencies through recursive static analysis.
Although itself a node.js program, module-grapher
's main target is client-side code.
While it can be used to build dependency graphs of node programs, it is unaware of node's special node_modules
directory or NPM's nested package dependencies conventions. In fact, module-grapher
is totally unaware of packages at large (it supports search paths, however). Programs relying on external packages will need to install them via a package manager like Kris Zyp's excellent CPM. module-grapher
is designed to resolve module dependencies, not package dependencies.
In the future, module-grapher
might become package-aware to handle cases where multiple versions of the same package are required, but this is not currently a priority.
module-grapher
supports CoffeeScript and can be easily extended to support other languages which compile to JavaScript.
module-grapher
is available as an NPM module.
$ npm install module-grapher
module-grapher
accepts an filepath, source code or module identifier as input.
To get dependencies from a module:
require('module-grapher').graph('foo', {
paths: ['./lib', './vendor'], // defaults to the equivalent of ['.']
root: 'path/to/package/root/' // defaults to process.cwd()
}, callback);
Other options include:
extensions
(defaults to['.js', '.coffee']
): an array of supported extensions.allowDirModules
: Also search for modules in the index file of the directory named after them. So look for modulefoo/bar
not only infoo/bar.js
but also infoo/bar/index.js
. Defaults tofalse
.allowMissingModules
: don't throw when a module is missing. Just mark it as such. Defaults tofalse
.allowDynamicModuleIdentifiers
: don't throw when the identifier of module isn't a string. Defaults tofalse
.
Your choice of MIT or Apache, Version 2.0 licenses. module-grapher
is copyright 2010 Tobie Langel.