mediawiki-extensions-Replac.../Gruntfile.js
Timo Tijhof 20f34321f4 build: Simplify linter configs
* eslint: Already excludes node_modules by default.
  https://eslint.org/docs/user-guide/configuring#ignoring

* eslint: Expands directories by default, much faster to
  let ESLint crawl the directories while knowing what to exclude,
  then to let Grunt expand **/** recursively run each file
  individually.
  This makes Grunt run ESLint the same way as one normally
  would from the command line: `eslint .`, except without
  the eslint CLI sub-process.

* eslint: Preserve the exclude for vendor via eslint config
  so that it also works when running ESLint outside Grunt,
  e.g. in IDEs or from the command line with extra options.

* stylelint: Ignores node_modules by default.
  https://stylelint.io/user-guide/node-api/#files

Change-Id: I1a78e9d93e7666c1539bcf4a3bc50306cecf89ba
2018-04-26 16:51:35 +01:00

36 lines
700 B
JavaScript

/* eslint-env node */
module.exports = function ( grunt ) {
var conf = grunt.file.readJSON( 'extension.json' );
grunt.loadNpmTasks( 'grunt-banana-checker' );
grunt.loadNpmTasks( 'grunt-eslint' );
grunt.loadNpmTasks( 'grunt-jsonlint' );
grunt.loadNpmTasks( 'grunt-stylelint' );
grunt.initConfig( {
eslint: {
all: '.'
},
stylelint: {
options: {
syntax: 'less'
},
all: [
'**/*.{css,less}',
'!vendor/**'
]
},
banana: conf.MessagesDirs,
jsonlint: {
all: [
'**/*.json',
'!node_modules/**',
'!vendor/**'
]
}
} );
grunt.registerTask( 'test', [ 'eslint', 'stylelint', 'jsonlint', 'banana' ] );
grunt.registerTask( 'default', 'test' );
};