grunt-angular-modules-graph

0.3.1-1 • Public • Published

Dismissed project use instead https://github.com/lucalanca/grunt-angular-architecture-graph

grunt-angular-modules-graph

Generate modules dependencies graph in .dot format

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-angular-modules-graph --save-dev

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

grunt.loadNpmTasks('grunt-angular-modules-graph');

The "modules-graph" task

Overview

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

grunt.initConfig({
  'modules-graph': {
    options: {
      // Task-specific options go here.
    },
    your_target: {
      files: {
        'destination-file.dot': ['src/*.js']
      }
    },
  },
});

Options

options.externalDependenciesColor

Type: String Default value: 'red'

A string value that to set external dependencies link color

Usage Examples

Sample of modules definitions pattern supported

//even different files
angular.module('module1',[])
  .controller('testController', angular.noop)
 
angular.module('module1')
  .factory('testFactory', angular.noop)
 
//same file
(function(){
  var module3 = angular.module('module3',[])
  module3.value('aValue', 42)
}())
 
(function(module){
  module.constant('foo', 42)
}(angular.module('module2',['module1', 'module3'])))

Restrictions

does not handle global defined modules
//fileA.js
window.module1 = angular.module('testModule1',[])
//fileB.js
window.module1.controller('testContoller', angular.noop)

Default Options

grunt.initConfig({
  'modules-graph': {
    options: {
      externalDependenciesColor:'red'
    },
    files: {
      'dest/dependency-graph.dot': ['src/testing.js', 'src/**/*.js'],
    },
  },
});

Example: render graph with grunt-graphviz

npm install grunt-graphviz --save-dev
grunt.loadNpmTasks('grunt-graphviz');
 
grunt.initConfig({
  graphviz: {
    dependencies: {
      files: {
        'dependencies-graph.png': 'dependencies-graph.dot'
      }
    },
  }
})

Example

https://github.com/angular-ui/bootstrap example dependencies graph (partial) angular-ui/bootstrap

Release History

  • 0.2.3 catching errors, logs for skipped files and task completion
  • 0.2.2 added angular global api (noop, identiy, element, ...)
  • 0.2.1 window, document, navigator in global scope
  • 0.2.0 modules can be requested before module definition (allow requesting modules in more than 1 file)
  • 0.1.0 first release

Package Sidebar

Install

npm i grunt-angular-modules-graph

Weekly Downloads

0

Version

0.3.1-1

License

none

Last publish

Collaborators

  • carlo-colombo