/js-module-walker

Analyze dependencies of es6 module based js projects

Primary LanguageJavaScriptMIT LicenseMIT

js-module-walker

Build Status Code Climate Test Coverage

A dependency analyzer for ECMAScript projects that use es6 modules.

Installation

# npm install -g @migerh/js-module-walker

Usage

Invoke with --help or -h to get up to date information of the accepted input parameters:

  Usage: js-module-walker [options] <files>

  Options:

    -h, --help           output usage information
    -o, --output [file]  save output in file
    --find-cycles        detect and highlight cyclic dependencies
    --ignore-packages    ignore dependencies into packages from e.g. node modules

Examples:

$ js-module-walker ./path/to/your/js-project
$ js-module-walker --ignore-packages --output /tmp/dependencies.dot ./path/to/js-files

js-module-walker

An analysis of this very project as of d8636e14 produces the graph below

$ js-module-walker index.js ./lib | dot -o./examples/js-module-walker-d8636e14.png -T png

js-module-walker example graph

An open source webapp for meeting minutes; version https://github.com/4minitz/4minitz/commit/215091a7d. The analysis is restricted to the client side modules.

$ js-module-walker --find-cycles --ignore-packages ./client/**/*.js ./lib/**/*.js ./imports/**/*.js | dot -Tpng -o./examples/4minitz-client-w-cycles-wo-packages-215091a7d.png

Graph: 4minitz dependency graph

License

This project is licensed under the terms of the MIT license. See the LICENSE file for more information.