$ npm install grunt-complexity
A grunt task that utilizes complexity-report to evaluate the complexity and maintainability of code.
npm install grunt-complexity --save-dev
Within your grunt file:
// Project configuration.
grunt.initConfig({
complexity: {
generic: {
src: ['grunt.js', 'tasks/grunt-complexity.js'],
exclude: ['doNotTest.js'],
options: {
breakOnErrors: true,
jsLintXML: 'report.xml', // create XML JSLint-like report
checkstyleXML: 'checkstyle.xml', // create checkstyle report
pmdXML: 'pmd.xml', // create pmd report
errorsOnly: false, // show only maintainability errors
cyclomatic: [3, 7, 12], // or optionally a single value, like 3
halstead: [8, 13, 20], // or optionally a single value, like 8
maintainability: 100,
hideComplexFunctions: false, // only display maintainability
broadcast: false // broadcast data over event-bus
}
}
}
});
grunt.loadNpmTasks('grunt-complexity');
grunt.registerTask('default', 'complexity');
Documentation on this to come. For now, see jscomplexity.org
Set the broadcast
option to true
to send the aggregated data over the
grunt-event bus.
Emitted events are:
grunt-complexity.start
grunt-complexity.maintainability, payload
grunt-complexity.end
// payload of grunt-complexity.maintainability
{
filepath: /path/to/file,
valid: true|false,
maintainability: 123.42
}
This repo has a submodule, so after you npm install
, you'll want to run:
git submodule init
git submodule update
cd test/grunt.0.4
npm install
cd ...
Tests can be run with npm test
.
grunt-complexity
is released under the MIT License.
Visit code.viget.com to see more projects from Viget.
© 2010 - cnpmjs.org x YWFE | Home | YWFE