diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..1a97f6e --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,7 @@ +{ + "root": true, + "extends": [ + "wikimedia/client", + "wikimedia/jquery" + ] +} diff --git a/.gitignore b/.gitignore index 4284dfa..d69a835 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /node_modules/ /vendor/ /composer.lock +.eslintcache diff --git a/Gruntfile.js b/Gruntfile.js index 26ca0c1..3ae201c 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,19 +1,24 @@ -/*jshint node:true */ +/* eslint-env node, es6 */ module.exports = function ( grunt ) { - grunt.loadNpmTasks( 'grunt-banana-checker' ); - grunt.loadNpmTasks( 'grunt-jsonlint' ); - grunt.loadNpmTasks( 'grunt-contrib-jshint' ); - var conf = grunt.file.readJSON( 'extension.json' ); + + grunt.loadNpmTasks( 'grunt-banana-checker' ); + grunt.loadNpmTasks( 'grunt-eslint' ); + grunt.loadNpmTasks( 'grunt-jsonlint' ); + grunt.initConfig( { - banana: conf.MessagesDirs, - jshint: { + eslint: { + options: { + reportUnusedDisableDirectives: true, + cache: true + }, all: [ '**/*.js', - '!node_modules/**', - '!vendor/**' + '!{vendor,node_modules}/**' ] }, + + banana: conf.MessagesDirs, jsonlint: { all: [ '**/*.json', @@ -23,6 +28,6 @@ module.exports = function ( grunt ) { } } ); - grunt.registerTask( 'test', [ 'jsonlint', 'banana', 'jshint' ] ); + grunt.registerTask( 'test', [ 'eslint', 'jsonlint', 'banana' ] ); grunt.registerTask( 'default', 'test' ); }; diff --git a/package.json b/package.json index c22649f..7a9ded6 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,10 @@ "test": "grunt test" }, "devDependencies": { - "grunt": "1.0.3", + "eslint-config-wikimedia": "0.11.0", + "grunt": "1.0.4", "grunt-banana-checker": "0.6.0", - "grunt-contrib-jshint": "1.1.0", + "grunt-eslint": "21.0.0", "grunt-jsonlint": "1.1.0" } }