grunt-weightwatchsy
Grunt task for gathering the file sizes of different asset types over time.
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;
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