Novelty Palliates Malaise
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    grunt-angular-modules-graphpublic

    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

    install

    npm i grunt-angular-modules-graph

    Downloadsweekly downloads

    26

    version

    0.3.1-1

    license

    none

    repository

    githubgithub

    last publish

    collaborators

    • avatar