tdeekens / grunt-weightwatchsy

Grunt task for gathering the file sizes of different asset types over time.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

grunt-weightwatchsy

Grunt task for gathering the file sizes of different asset types over time.

NPM

Build Status Coverage Status Dependency Status

Getting Started

This plugin requires Grunt ~0.4.2

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-weightwatchsy --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-weightwatchsy');

The "weightwatchsy" task

Overview

In your project's Gruntfile, the weightwatchsy task is available to use.

You can run grunt weightwatchsy standalone Or add it to an existing task: grunt.registerTask('test', ['clean', 'weightwatchsy']);

Options

{
  //Prettifies file sizes to readable format
  human: <true>,
  //Path where to save results
  location: <'dist/weightwatchsy.json'>,
  //Sums up assets' sizes per extension type
  aggregate: <['.txt', '.css', '.js', '.png', '.jpg']>,
  /**
   * Allows for grouping asset types e.g.
   * {
   *   text: ['.css', '.js']
   * }
   */
  groups: <{}>,
  /**
   * Allows breaking the build by e.g. stating
   * {
   *   aggregations: {
   *     css: 1000
   *   },
   *   groups: {
   *     text: 20000
   *   },
   *   summary: {
   *     size: 50000,
   *     average: 250
   *   }
   * }
   */
   break: <{
     file: {},
     aggregations: {},
     summary: {}
   }>,
   //Aborts grunt immediately if false and a `break`-condition holds
   warn: <true>,
   //Excludes dependencies by name (from extensions and total size etc.)
   exclusions: <[]>,
   //Variations of files e.g .gz versions of all .js and css files which should be
   //treated separately and not be aggregated all as .gz
   variations: <[]>,
   //Keep history over builds with limit
   history: <{
     enabled: <false>,
     limit: <10>
   }>
}

An example configuration can be found here and if you want to check the options you might want to check the Gruntfile itself.

Developing & Contributing

Developing on the task alone is fairly easy just git clone https://github.com/tdeekens/grunt-weightwatchsy.git then cd grunt-weightwatchsy. From there one has to link the package to itself via npm link && npm link grunt-weightwatchsy which will allow for calling grunt dev. Now just work the task/weightwatchsy.js and check results - feel free to submit a pull-request!

Release History

  • 0.0.1 Initial release
  • 0.0.2 Add conditional breaking of build
  • 0.0.3 Clean up and refactoring
  • 0.0.4 Add support for breaking on summary conditions
  • 0.0.5 Add warn-flag allowing to immediately fail grunt if break-condition holds
  • 0.1.0 Minor version bump - stable enough
  • 0.1.1 Fix breaking build with warn-flag
  • 0.1.2 Add summary of sizes by extensions
  • 0.1.3 Add brief information under summary entry
  • 0.1.4 Add support for explicitly excluding extensions
  • 0.1.5 Fix lodash dependency
  • 0.2.0
    • Add support for variation of files (e.g. compressed assets)
    • Remove support for specifying extensions as in '.jpg' or 'jpg' only '.jpg' accepted now\
  • 0.2.1 Fix breaker getting correct parameters
  • 0.2.2 Export raw sizes per extension as devlish values
  • 0.2.3 Add support for history in builds with limit in length (builds)
  • 1.0.0 Update dependencies and add engine requirements

About

Grunt task for gathering the file sizes of different asset types over time.

License:MIT License


Languages

Language:HTML 71.6%Language:JavaScript 28.4%