Ver código fonte

Added gulp lint task.

Szymon Kupś 10 anos atrás
pai
commit
3219003155
3 arquivos alterados com 48 adições e 1 exclusões
  1. 39 0
      dev/tasks/gulp/lint/tasks.js
  2. 5 1
      gulpfile.js
  3. 4 0
      package.json

+ 39 - 0
dev/tasks/gulp/lint/tasks.js

@@ -0,0 +1,39 @@
+/* jshint node: true, esnext: true */
+
+'use strict';
+
+const gulp = require( 'gulp' );
+const jshint = require( 'gulp-jshint' );
+const jscs = require( 'gulp-jscs' );
+const fs = require( 'fs' );
+
+module.exports = ( config ) => {
+	const src = [ '**/*.js' ].concat( config.IGNORED_FILES.map( i => '!' + i ), getGitIgnore() );
+
+	gulp.task( 'lint', () => {
+		return gulp.src( src )
+			.pipe( jscs() )
+			.pipe( jshint() )
+			.pipe( jscs.reporter() )
+			.pipe( jshint.reporter( 'jshint-reporter-jscs' ) );
+	} );
+
+	/**
+	 * Gets the list of ignores from `.gitignore`.
+	 *
+	 * @returns {String[]} The list of ignores.
+	 */
+	function getGitIgnore( ) {
+		let gitIgnoredFiles = fs.readFileSync( '.gitignore', 'utf8' );
+
+		return gitIgnoredFiles
+			// Remove comment lines.
+			.replace( /^#.*$/gm, '' )
+			// Transform into array.
+			.split( /\n+/ )
+			// Remove empty entries.
+			.filter( ( path ) => !!path )
+			// Add `!` for ignore glob.
+			.map( i => '!' + i );
+	}
+};

+ 5 - 1
gulpfile.js

@@ -7,10 +7,14 @@ const gulp = require( 'gulp' );
 const config = {
 const config = {
 	ROOT_DIR: '.',
 	ROOT_DIR: '.',
 	DIST_DIR: 'dist',
 	DIST_DIR: 'dist',
-	WORKSPACE_DIR: '..'
+	WORKSPACE_DIR: '..',
+
+	// Files ignored by jshit and jscs tasks. Files from .gitignore will be added automatically during tasks execution.
+	IGNORED_FILES: [ 'lib/**' ]
 };
 };
 
 
 require( './dev/tasks/gulp/build/tasks' )( config );
 require( './dev/tasks/gulp/build/tasks' )( config );
 require( './dev/tasks/gulp/dev/tasks' )( config );
 require( './dev/tasks/gulp/dev/tasks' )( config );
+require( './dev/tasks/gulp/lint/tasks' )( config );
 
 
 gulp.task( 'default', [ 'build' ] );
 gulp.task( 'default', [ 'build' ] );

+ 4 - 0
package.json

@@ -32,6 +32,8 @@
     "gulp": "^3.9.0",
     "gulp": "^3.9.0",
     "gulp-babel": "^6.1.0",
     "gulp-babel": "^6.1.0",
     "gulp-filter": "^3.0.1",
     "gulp-filter": "^3.0.1",
+    "gulp-jscs": "^3.0.2",
+    "gulp-jshint": "^2.0.0",
     "gulp-mirror": "^0.4.0",
     "gulp-mirror": "^0.4.0",
     "gulp-rename": "^1.2.2",
     "gulp-rename": "^1.2.2",
     "gulp-sourcemaps": "^1.6.0",
     "gulp-sourcemaps": "^1.6.0",
@@ -39,6 +41,8 @@
     "gulp-watch": "^4.3.5",
     "gulp-watch": "^4.3.5",
     "inquirer": "^0.11.0",
     "inquirer": "^0.11.0",
     "istanbul": "^0.4.1",
     "istanbul": "^0.4.1",
+    "jshint-reporter-jscs": "^0.1.0",
+    "jshint-stylish": "^2.1.0",
     "merge-stream": "^1.0.0",
     "merge-stream": "^1.0.0",
     "minimist": "^1.2.0",
     "minimist": "^1.2.0",
     "mocha": "^2.2.5",
     "mocha": "^2.2.5",