Ver Fonte

feat(grunt-jscs): add grunt task jscs lint

Now it's possible to enforce code style linting with jscs automatically when testing or building with grunt
Estevão Soares dos Santos há 10 anos atrás
pai
commit
0e99444bb1
3 ficheiros alterados com 79 adições e 54 exclusões
  1. 1 0
      .jscs.json
  2. 77 54
      Gruntfile.js
  3. 1 0
      package.json

+ 1 - 0
.jscs.json

@@ -1,4 +1,5 @@
 {
+  "validateIndentation": 2,
   "requireCurlyBraces": [
     "if",
     "else",

+ 77 - 54
Gruntfile.js

@@ -4,62 +4,85 @@
 
 module.exports = function (grunt) {
 
-    // Project configuration.
-    grunt.initConfig({
-        pkg: grunt.file.readJSON('package.json'),
-        concat: {
-            options: {
-                sourceMap: true,
-                banner: ";/*! <%= pkg.name %> <%= grunt.template.today('dd-mm-yyyy') %> */\n(function(){\n",
-                footer: "}).call(this)"
-            },
-            dist: {
-                src: ['src/showdown.js', 'src/helpers.js', 'src/subParsers/*.js', 'src/loader.js'],
-                dest: 'dist/<%= pkg.name %>.js'
-            }
-        },
-        uglify: {
-            options: {
-                sourceMap: true,
-                banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
-            },
-            dist: {
-                files: {
-                    'dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']
-                }
-            }
-        },
-        jshint: {
-            files: ['Gruntfile.js', 'src/**/*.js']
-        },
-        simplemocha: {
-            node: {
-                src: 'test/node/**/*.js',
-                options: {
-                    globals: ['should'],
-                    timeout: 3000,
-                    ignoreLeaks: false,
-                    reporter: 'spec'
-                }
-            },
-            browser: {
-                src: 'test/browser/**/*.js',
-                options: {
-                    reporter: 'spec'
-                }
-            }
+  // Project configuration.
+  var config = {
+    pkg: grunt.file.readJSON('package.json'),
+    concat: {
+      options: {
+        sourceMap: true,
+        banner: ';/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n(function(){\n',
+        footer: '}).call(this)'
+      },
+      dist: {
+        src:  [
+          'src/showdown.js',
+          'src/helpers.js',
+          'src/subParsers/*.js',
+          'src/loader.js'
+        ],
+        dest: 'dist/<%= pkg.name %>.js'
+      }
+    },
+    uglify: {
+      options: {
+        sourceMap: true,
+        banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
+      },
+      dist: {
+        files: {
+          'dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']
         }
-    });
+      }
+    },
+    jshint: {
+      files: [
+        'Gruntfile.js',
+        'src/**/*.js',
+        'test/**/*.js'
+      ]
+    },
+    jscs: {
+      options: {
+        config: '.jscs.json',
+        files: [
+          'Gruntfile.js',
+          'src/**/*.js',
+          'test/**/*.js'
+        ]
+      }
+    },
+    simplemocha: {
+      node: {
+        src: 'test/node/**/*.js',
+        options: {
+          globals: ['should'],
+          timeout: 3000,
+          ignoreLeaks: false,
+          reporter: 'spec'
+        }
+      },
+      browser: {
+        src: 'test/browser/**/*.js',
+        options: {
+          reporter: 'spec'
+        }
+      }
+    }
+  };
+
+  grunt.initConfig(config);
 
-    grunt.loadNpmTasks('grunt-contrib-concat');
-    grunt.loadNpmTasks('grunt-contrib-uglify');
-    grunt.loadNpmTasks('grunt-contrib-jshint');
-    grunt.loadNpmTasks('grunt-simple-mocha');
+  grunt.loadNpmTasks('grunt-contrib-concat');
+  grunt.loadNpmTasks('grunt-contrib-uglify');
+  grunt.loadNpmTasks('grunt-contrib-jshint');
+  grunt.loadNpmTasks('grunt-simple-mocha');
+  grunt.loadNpmTasks('grunt-jscs');
 
-    grunt.registerTask('test', ['jshint', 'concat', 'simplemocha']);
-    grunt.registerTask('test-without-building', ['simplemocha']);
-    grunt.registerTask('build', ['jshint', 'concat', 'test', 'uglify']);
+  grunt.registerTask('lint', ['jshint', 'jscs']);
+  grunt.registerTask('test', ['lint', 'concat', 'simplemocha']);
+  grunt.registerTask('test-without-building', ['simplemocha']);
+  grunt.registerTask('build', ['lint', 'test', 'uglify']);
 
-    // Default task(s).
-    grunt.registerTask('default', []);
+  // Default task(s).
+  grunt.registerTask('default', []);
 };

+ 1 - 0
package.json

@@ -42,6 +42,7 @@
     "grunt-contrib-concat": "^0.5.0",
     "grunt-contrib-jshint": "^0.10.0",
     "grunt-contrib-uglify": "^0.6.0",
+    "grunt-jscs": "^1.2.0",
     "grunt-simple-mocha": "^0.4.0",
     "jscs": "^1.10.0",
     "mocha": "*",