- JSCS is a Linter for JavaScript code style.
- JSCS contains 150 validation rules for javascript style linting.
- These 150 rules follows popular style guides from Jquery,Airbnb and Google etc.
- JSCS also provides presets like Jquery,Airbnb and Google.
- Gulp provides gulp-jscs module for creating task to run JSCS to lint the javascript code.
- In this demo,”We will learn to install gulp-jscs module and create a Gulp task to lint the javascript code”.
- The gulp-jscs module can be installed using npm install gulp-jscs --save-dev command.The following screenshot shows the installation of gulp-jscs module.
- To demonstrate the gulp-jscs module we have created GulpJSCSDemo project.The following screenshot shows the structure of GulpJSCSDemo directory:-
- The script/numberOperation.js file contains javascript code with 2 methods addTwoNumber() and findGreatestNumber() to do addition and finding greatest number from the supplied 2 numbers. The code content of script/numberOperation.js file are as follows:-
//Method Addition of 2 numbers var addTwoNumber = function(number1,number2){ return number1 + number2; }; //Method Find greatest number var findGreatestNumber = function(number1,number2){ return ((number1 > number2)? number1 : number2); }; var result= addTwoNumber(5,7); var greatestNumber= findGreatestNumber(5,7); console.log("Result: ",result); console.log("Greatest Number: ",greatestNumber);
- The .jscsrc file contains few rules for javascript code style.The following code shows the content of .jscsrc file:-
{ "requireSpaceBeforeKeywords": [ "else", "while", "catch" ], "disallowTrailingComma": true, "requireSpaceAfterBinaryOperators": [ "?", ":", "+", "-" ], "requireSpaceBeforeBinaryOperators": [ "?", ":", "+", "-" ], "requireSpaceAfterKeywords": [ "if", "else", "for" ], "requireSpaceBeforeBlockStatements": true }
- The gulpfile.js contains code to define 2 gulp task jscs-test and default.The jscs-test task loads the script/numberOperation.js and checks against the JSCS rules and reports using a reporter.
var gulp = require('gulp'), jscs = require('gulp-jscs'); //Task for JavaScript style Linter gulp.task('jscs-test', function(){ return gulp.src('./script/*.js') .pipe(jscs()) .pipe(jscs.reporter()); }); //Default task alias for jscs-test gulp.task('default', ['jscs-test']);
- The gulp task can be run using either gulp or gulp jscs-test command.The following screenshot shows the terminal with gulp task in execution.
- From the previous screenshot we can find JSCS has reported 2 error with line number and location of the error.Both of these error are about missing spaces after function keyword.
- Let’s add a space after the function keyword.The modified code of the script/numberOperation.js are as follows:-
//Method Addition of 2 numbers var addTwoNumber = function(number1,number2) { return number1 + number2; }; //Method Find greatest number var findGreatestNumber = function(number1,number2) { return ((number1 > number2)? number1 : number2); }; var result= addTwoNumber(5,7); var greatestNumber= findGreatestNumber(5,7); console.log("Result: ",result); console.log("Greatest Number: ",greatestNumber);
- Lets run the JSCS gulp task again.The following screenshot shows the terminal with Gulp task in execution:-
- In the preceding screenshot we can see there is no more error and gulp task has ran successfully.
- We can run this demo using NodeJS.The following screenshot shows the terminal with NodeJS in execution with the output of the demo:-
- This demo can be downloaded from the following link:-