UNPKG

dependency-cruiser

Version:

Validate and visualize dependencies. With your rules. JavaScript, TypeScript, CoffeeScript. ES6, CommonJS, AMD.

120 lines (92 loc) 3.66 kB
# dependency-cruiser command line interface Running with no parameters gets you help: ``` Usage: dependency-cruise [options] <directory-or-file> Options: -h, --help output usage information -V, --version output the version number -v, --validate [file] validate with rules from [file] (default: .dependency-cruiser.json) -f, --output-to <file> file to write output to; - for stdout (default: -) -x, --exclude <regex> a regular expression for excluding modules -M, --system <items> list of module systems (default: amd,cjs,es6) -T, --output-type <type> output type - html|dot|err|json (default:json) ``` ## Output formats ### err For use in build scripts, in combination with `--validate` e.g. ```sh dependency-cruise -T err --validate my-depcruise-rules.json src ``` This will: - ... print nothing and exit with code 0 if dependency-cruiser didn't find any violations of the rules in .dependency-cruiser.json. - ... print the violating dependencies if there is any. Moreover it will exit with exit code _number of violations found_ in the same fasion linters and test tools do. See the _dependency-cruise_ target in the [Makefile](https://github.com/sverweij/dependency-cruiser/blob/master/Makefile#L95) for a real world example. ### dot Supplying `dot` as output type will make dependency-cruiser write a GraphViz dot format directed graph. Typical use is in concert with _GraphViz dot_: ```shell dependency-cruise -x "^node_modules" -T dot src | dot -T svg > dependencygraph.svg ``` ### html Write it to html with a dependency matrix instead: ```shell dependency-cruise -T html -f dependencies.html src ``` ### csv If you supply `csv` it will write the dependency matrix to a comma separated file - so you can import it into a spreadsheet program and analyze from there. ## `--exclude`: exclude modules from being cruised If you don't want to see certain modules in your report (or not have them validated), you can exclude them by passing a regular expression to the `--exclude` (short: `-x`) option. E.g. to exclude `node_modules` from being scanned: ```sh dependency-cruise -x "node_modules" -T html -f deps-without-node_modules.html src ``` Beacuse it's regular expressions, you can do more interesting stuff here as well. To exclude all modules with a file path starting with coverage, test or node_modules, you could do this: ```sh dependency-cruise -x "^(coverage|test|node_modules)" -T html -f deps-without-stuffs.html src ``` ## `--validate` Validates against a list of rules in a rules file. This defaults to a file called `.dependency-cruiser.json`, but you can specify your own rules file. ```shell dependency-cruise -T err -x node_modules --validate my.rules.json ``` The file specifies a bunch of regular expressions pairs your dependencies should adhere to. A simple validation configuration that forbids modules in `src` to use stuff in the `test` folder and allows everything else: ```json { "forbidden": [{ "from": {"path": "^src"}, "to": {"path": "^test"} }] } ``` You can optionally specify a name and an error severity ('error', 'warn' (the default) and 'info') with them that will appear in some reporters: ```json { "forbidden": [{ "name": "no-src-to-test", "severity": "error", "from": {"path": "^src"}, "to": {"path": "^test"} }] } ``` ## Daphne's dependencies - a gentle introduction **[Daphne's dependencies](sample-output.md)** sport a visual overview of all the output formats. It also shows how Daphne and her colleagues use them in their workflow.