node package manager
Orgs are free. Discover, share, and reuse code in your team. Create a free org »

grunt-big-assets

grunt-big-assets

Analyzes an AMD project's Javascript (using madge), generating a report of largest Javascript dependencies.

Dependencies are sorted in descending order by Uglified filesize.

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-big-assets --save-dev

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

grunt.loadNpmTasks('grunt-big-assets');

The "big_assets" task

Overview

In your project's Gruntfile, add a section named big_assets to the data object passed into grunt.initConfig().

grunt.initConfig({
  big_assets: {
    options: {
      base: 'public/javascripts'  // base path to project Javascript (no trailing slash), 
      reportPath: 'target/grunt/big-assets.html'  // path to output a report in HTML format (optional) 
    },
    files: ['public/javascripts/**/*.js']
  }
});

Options

options.base

Type: String Default value: ''

Base path to the project Javascript, relative to the Gruntfile.

options.madge

Type: object Default value:

{
  format: 'amd',
  findNestedDependencies: false,
  requireConfigFile: ''
}

Configuration options to pass on to Madge (full list of options).

options.filterPrefix

AMD module identifier prefix to filter the report with (by excluding display of Dependent Modules that don't match the prefix).

options.reportPath

Type: String Default value: undefined

Optional path to generate an HTML version of the big assets report.

Release History

  • 2014-12-27 v0.1.3 Actually fix circular dependency issues. Update Madge, add filterPrefix option and madge option for setting Madge configuration.
  • 2014-12-26   v0.1.2   Attempt to resolve circular dependency issues but break everything.
  • 2014-03-12   v0.1.1   Speed up analysis dramatically by caching intensive calls.
  • 2014-02-14   v0.1.0   Initial rough release, lacks tests or significant configurability.