mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Echo
synced 2024-11-30 18:45:07 +00:00
7ed027ddcf
Change-Id: I776585adab962c2b1d353d18d3a02b6662941b13
95 lines
1.7 KiB
JavaScript
95 lines
1.7 KiB
JavaScript
/* eslint-env node */
|
||
module.exports = function ( grunt ) {
|
||
var conf = grunt.file.readJSON( 'extension.json' );
|
||
|
||
grunt.loadNpmTasks( 'grunt-banana-checker' );
|
||
grunt.loadNpmTasks( 'grunt-contrib-watch' );
|
||
grunt.loadNpmTasks( 'grunt-eslint' );
|
||
grunt.loadNpmTasks( 'grunt-jsonlint' );
|
||
grunt.loadNpmTasks( 'grunt-stylelint' );
|
||
grunt.loadNpmTasks( 'grunt-svgmin' );
|
||
|
||
grunt.initConfig( {
|
||
eslint: {
|
||
options: {
|
||
reportUnusedDisableDirectives: true
|
||
},
|
||
src: [
|
||
'**/*.js',
|
||
'!node_modules/**',
|
||
'!vendor/**',
|
||
'!tests/externals/**',
|
||
'!docs/**'
|
||
]
|
||
},
|
||
// Lint – Styling
|
||
stylelint: {
|
||
options: {
|
||
syntax: 'less'
|
||
},
|
||
all: [
|
||
'modules/**/*.css',
|
||
'modules/**/*.less'
|
||
]
|
||
},
|
||
// SVG Optimization
|
||
svgmin: {
|
||
options: {
|
||
js2svg: {
|
||
indent: '\t',
|
||
pretty: true
|
||
},
|
||
multipass: true,
|
||
plugins: [ {
|
||
cleanupIDs: false
|
||
}, {
|
||
removeDesc: false
|
||
}, {
|
||
removeRasterImages: true
|
||
}, {
|
||
removeTitle: false
|
||
}, {
|
||
removeViewBox: false
|
||
}, {
|
||
removeXMLProcInst: false
|
||
}, {
|
||
sortAttrs: true
|
||
} ]
|
||
},
|
||
all: {
|
||
files: [ {
|
||
expand: true,
|
||
cwd: 'modules/icons',
|
||
src: [
|
||
'**/*.svg'
|
||
],
|
||
dest: 'modules/icons/',
|
||
ext: '.svg'
|
||
} ]
|
||
}
|
||
},
|
||
banana: conf.MessagesDirs,
|
||
watch: {
|
||
files: [
|
||
'.{stylelintrc,eslintrc}.json',
|
||
'<%= eslint.all %>',
|
||
'<%= stylelint.all %>'
|
||
],
|
||
tasks: 'test'
|
||
},
|
||
jsonlint: {
|
||
all: [
|
||
'**/*.json',
|
||
'!node_modules/**',
|
||
'!vendor/**',
|
||
'!docs/**'
|
||
]
|
||
}
|
||
} );
|
||
|
||
grunt.registerTask( 'minify', 'svgmin' );
|
||
grunt.registerTask( 'lint', [ 'eslint', 'stylelint', 'jsonlint', 'banana' ] );
|
||
grunt.registerTask( 'test', 'lint' );
|
||
grunt.registerTask( 'default', [ 'minify', 'test' ] );
|
||
};
|