It's SLOC plugin for Grunt.js. Based on sloc and fork from grunt-sloc. Add new feature for
options.alias
to specify ext to act like standard extensions.
This plugin requires Grunt ~0.4.1
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-file-sloc --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-file-sloc');
In your project's Gruntfile, add a section named sloc
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
sloc: {
options: {
// Task-specific options go here.
},
your_target: {
// Target-specific file lists and/or options go here.
},
},
})
Type: String
Default value: stdout
It will generate a JSON file SLOC analysis results. The default value is stdout
.
If we do not specify, in the case of the stdout
, If you are prompted to enter the json
and output to the CLI on the json file.
Type: String
Default value: ``
Specify the path where you output the JSON file. Create the root folder if you do not specify if.
Type: Boolean
Default value: true
If true
//default reports
//and detail reports
.-----------------------------------------------------------------------.
| extension | total | source | comment | single | mixed | empty | block |
|-----------|-------|--------|---------|--------|-------|-------|-------|
| js | 11 | 8 | 2 | 2 | 0 | 1 | 0 |
| css | 8 | 7 | 0 | 0 | 0 | 1 | 0 |
| less | 235 | 152 | 45 | 30 | 0 | 38 | 15 |
'-----------------------------------------------------------------------'
Type: Boolean
Default value: false
Set as false
to analyze only files with a subset of popular extensions. true
to analyze files with any file extension. The default is false
.
If true
, the SLOC will be executed on all of the files specified, regardless of file extension. With 'tolerant' set to false
, or 'tolerant' unspecified, only supported file extensions will be analyzed.
Type: Object
Default value: null
Custom ext to act like standard ext.
eg.
{
php5: 'php',
less: 'css',
vm: 'html'
}
Type: String
Default value: js
When options.tolerant
is true
, Specify the default file extension for those files who's extensions are not recognized.
This configuration will count line of the input files using the default options.
grunt.initConfig({
sloc: {
// Files Object Format
'style1': {
files: {
'target/path/is/noused': [ 'lib/onlyMyLib.js', 'app/**.js' ],
'anystring': [ '*.java', '*.coffee' ]
}
},
// Compact Format
'style2': {
src: ['lib/onlyMyLib.js', 'app/**.js', '*.java', '*.coffee']
},
// Files Array Format
'style3': {
files: [
{ src: ['lib/onlyMyLib.js', 'app/**.js'] },
{ src: ['*.java', '*.coffee'] }
]
}
}
})
result
...
Running "sloc" (sloc) task
-------------------------------
physical lines : 51
lines of source code : 29
total comment : 6
singleline : 6
multiline : 0
empty : 16
number of files read : 12
mode : strict(or torelant)
.-----------------------------------------------------------------------.
| extension | total | source | comment | single | mixed | empty | block |
|-----------|-------|--------|---------|--------|-------|-------|-------|
| js | 11 | 8 | 2 | 2 | 0 | 1 | 0 |
| css | 8 | 7 | 0 | 0 | 0 | 1 | 0 |
| less | 235 | 152 | 45 | 30 | 0 | 38 | 15 |
'-----------------------------------------------------------------------'
...
grunt.initConfig({
sloc: {
options: {
reportType: 'json',
reportPath: 'path/to/sloc-v<%= pkg.version %>.json',
},
files: {
'target/path/is/noused': [ 'lib/onlyMyLib.js', 'app/**.js' ],
'anystring': [ '*.java', '*.coffee' ]
},
},
})
result
{
"createdAt": "2015-03-19T03:35:53.326Z",
"total": {
"total": 5,
"source": 4,
"comment": 1,
"single": 1,
"block": 0,
"mixed": 0,
"empty": 0,
"file": 3
},
"targets": [
"report_to_json"
],
"data": {
"report_to_json": {
"total": 5,
"source": 4,
"comment": 1,
"single": 1,
"block": 0,
"mixed": 0,
"empty": 0,
"file": 3,
"js": {
"total": 5,
"source": 4,
"comment": 1,
"single": 1,
"block": 0,
"mixed": 0,
"empty": 0,
"file": 3
},
"createdAt": "2015-03-19T03:35:53.326Z"
}
}
}
- CoffeeScript
- C / C++
- CSS / SCSS - - Contributor hsablonniere
- Go
- HTML - Contributor hsablonniere
- Java
- JavaScript
- Python
- PHP
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
- 2015-06-25 v0.0.1 fork from grunt-sloc.