jscpd
is a tool for detect copy/past "design pattern" in JavaScript and CoffeeScript code.
npm install grunt-jscpd-force
// Gruntfile.js
grunt.loadNpmTasks('grunt-jspcpd-force');
Create a "jscpd" section in your Gruntfile
// Gruntfile.js
grunt.initConfig({
jscpd: {
javascript: {
path: 'lib/js/',
exclude: ['globalize/**', 'plugins/**']
}
}
}
Example with coffee option
// Gruntfile.js
grunt.initConfig({
jscpd: {
coffeescript: {
options: {
coffee: true
},
path: 'src/coffee/'
}
}
}
Type: String
or Array
Path to source folder
Type: String
Path to source folder
Type: BOOL
default false
if false grunt stops on error
Type: String|Array
- optional
Glob pattern for files to exclude from the analysis.
Type: String
- optional
Path to the output file
Type: String
or Array
- optional
Path to directory or files to ignore
Type: Boolean
- default: false
Source type is in CoffeeScript language
Type: Number
- default: 5
Min size of duplication in code lines to include it in report
Type: Number
- default: 70
Min size of duplication in code tokens
Thanks to Andrey Kucherenko to jscpd