Grunt task for gathering the file sizes of different asset types over time.
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');
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']);
{
//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 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!
- 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