stats for npm
Shell
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.gitignore
.travis.yml
LICENSE
README.md
npm-stats.sh
package.json

README.md

npm-stats Build Status

Ever wonder how much of your life you spend on npm installs? npm-stats logs how much time you spend running npm commands.

Installation

npm install npmstats -g
echo "source $HOME/.npm-stats/npm-stats.sh" >> some_*rc

or

  • Clone this repo to your home like, $HOME/.npm-stats
  • Source this script with your profile of choice. Make sure to add it at the end
mkdir -p "$HOME/.npm-stats"
git clone https://github.com/jaxgeller/npm-stats "$HOME/.npm-stats"
echo "source $HOME/.npm-stats/npm-stats.sh" >> some_*rc

Usage

npm-stats will hook into npm automatically, all you need to do is run npm-stats whenever you want some sweet stats.

npm-stats v1.0.0

Usage:
  npm-stats             Show stats in human readable format
  npm-stats dates       Just show date data
  npm-stats timing      Just show timing data
  npm-stats graph       Show a graph of the stats
  npm-stats raw         Outputs raw data
  npm-stats help        Show this message
  npm-stats version     Show the current version installed

How it works

npm-stats is a simple bash script. When you source it into your shell, it acts as a simple pre-filter to npm. If you run any command associated with installing, it appends to a log at ~/.npm-stats/timing with the date and how long it took in seconds.

npm-stats also provides some helper functions to help understand the logging, such as graphing and parsing the log.

Note: graphing requires gnuplot

Updating

If you used npm, just run npm update npmstats -g. Otherwise, updating is simple, just cd into $HOME/.npm-stats, run git pull, and refresh the shell.

Examples

$ npm-stats

You've run npm install 8 times. For a total of 28 seconds.
$ npm-stats graph

                         npm install timing distribution


  140 +-+-------+---------+---------+--------+---------+---------+-------+-+
      +         +         +         +        +         +         +         +
  120 +-+            ******    ***********        ******    ******       +-+
      |              *    ******    *    *****    *    ******    *         |
      |              *    *    *    *    *   ******    *    *    *         |
  100 +-+            *    *    *    *    *   *    *    *    *    *       +-+
      |              *    *    *    *    *   *    *    *    *    *         |
   80 +-+       ******    *    *    *    *   *    *    *    *    *       +-+
      |         *    *    *    *    *    *   *    *    *    *    *         |
   60 +-+       *    *    *    *    *    *   *    *    *    *    *       +-+
      |         *    *    *    *    *    *   *    *    *    *    *         |
   40 +-+       *    *    *    *    *    *   *    *    *    *    *       +-+
      |         *    *    *    *    *    *   *    *    *    *    *         |
      |         *    *    *    *    *    *   *    *    *    *    ******    |
   20 +-+       *    *    *    *    *    *   *    *    *    *    *    *  +-+
      +         *    *    *    *    *    *   *    *    *    *    *    *    +
    0 +-+-------*******************************************************--+-+
     -10        0         10        20       30        40        50        60
                                     timing
$ npm-stats raw

2015-10-31 15:09:25    2
2015-10-31 15:10:26    1
2015-10-31 15:33:25    1
2015-10-31 15:33:27    2
2015-10-31 15:33:28    1
2015-10-31 15:34:31   11
2015-10-31 15:34:35    1
2015-10-31 15:35:13    9