JavaScript source analysis and visualizer

  • plato

Downloads in past


4,555841.7.08 years ago11 years agoMinified + gzip package size for plato in KB



Needs active maintainer

plato was updated to support es6 by @devcrust, but needs an active maintainer to keep it moving forward.
Build Status
Visualize JavaScript source complexity with plato.

Example report on popular projects

- jquery - hapi - marionettejs


Install the module with: npm install -g plato


From the commandline

Usage : plato [options] -d <output_dir> <input files>
  -h, --help
      Display this help text.
  -q, --quiet
      Reduce output to errors only
  -v, --version
      Print the version.
  -x, --exclude : String
      File exclusion regex
  -d, --dir : String *required*
      The output directory
  -r, --recurse
      Recursively search directories
  -l, --jshint : String
      Specify a jshintrc file for JSHint linting
  -e, --eslint : String
      Specify a eslintrc file for ESLint linting
  -t, --title : String
      Title of the report
  -D, --date : String
      Time to use as the report date (seconds, > 9999999999 assumed to be ms)
  -n, --noempty
      Skips empty lines from line count

plato -r -d report src

Extended example
plato -r -d report -l .jshintrc -t "My Awesome App" -x .json routes/*.js

From scripts

var plato = require('plato');

var files = [

var outputDir = './output/dir';
// null options for this example
var options = {
  title: 'Your title here'

var callback = function (report){
// once done the analysis,
// execute this

plato.inspect(files, outputDir, options, callback);

Data sources

- Complexity data by Phil Booth's complexity-report - Lint data from jshint and eslint


- Jarrod Overson - Craig Davis - David Linse

Release History

- 1.6.0 Support es6 by updating eslint and using fork of escomplex - 1.3.0 Merged 107,130,128,119,114. Numerous bug fixed.
- Minor bumped for changes to parsing of files passed. Technically a breaking change but effectively a bug fix + feature so bumping minor.
- 1.2.1 Bumping versions for jshint and lodash - 1.2.0 add ability to disable jshint - 1.1.0 fix issue with running casperjs tests - 1.0.1 fix issue with first line hashbang - 1.0.0 promote to 1.0.0 with bug fixes - 0.6.2 Added sortable file list, updated to bootstrap 3 - 0.6.1 Fixed width overflow issues in file reports - 0.6.0 updated major dependency complexity-report - 0.5.0 Added historical reports - 0.4.7 Updated jshint to 1.1.0 (via #22) to jshint to address #16 - 0.4.6 Performance improvements on file view - 0.4.5 Updated complexity-report to 0.7.0 to prefer the 0-100 based maintainability index - 0.4.4 Added quiet mode, exclusion regex, description popovers - 0.4.3 Updated dependencies to fix reporting issues - 0.4.2 Fixed overview links to files - 0.4.1 Fixed jshint option passing - 0.4.0 Added summary stats, Casper tests, nodunit tests
- Breaking : plato api
- 0.3.1 Added graphs - 0.3.0 Formatting changes, refactoring.
- Breaking : jshint reporting api
- 0.2.0 added jshint reporting.
- Breaking : options api, cli api
- 0.1.0 initial release


Copyright (c) 2012 Jarrod Overson Licensed under the MIT license.
Bitdeli Badge