82 lines
1.6 KiB
JavaScript
82 lines
1.6 KiB
JavaScript
'use strict';
|
|
|
|
/**
|
|
* Tasks:
|
|
*
|
|
* gulp lint
|
|
* Checks source code
|
|
*
|
|
* gulp watch
|
|
* Observes changes in the code
|
|
*
|
|
* gulp
|
|
* Invokes both `lint` and `watch` tasks
|
|
*/
|
|
|
|
const gulp = require('gulp');
|
|
const plumber = require('gulp-plumber');
|
|
const eslint = require('gulp-eslint');
|
|
|
|
gulp.task('lint', () =>
|
|
{
|
|
let src =
|
|
[
|
|
'gulpfile.js',
|
|
'server.js',
|
|
'config.example.js',
|
|
'config.js',
|
|
'lib/**/*.js'
|
|
];
|
|
|
|
return gulp.src(src)
|
|
.pipe(plumber())
|
|
.pipe(eslint(
|
|
{
|
|
extends : [ 'eslint:recommended' ],
|
|
parserOptions :
|
|
{
|
|
ecmaVersion : 6,
|
|
sourceType : 'module',
|
|
ecmaFeatures :
|
|
{
|
|
impliedStrict : true
|
|
}
|
|
},
|
|
envs :
|
|
[
|
|
'es6',
|
|
'node',
|
|
'commonjs'
|
|
],
|
|
'rules' :
|
|
{
|
|
'no-console' : 0,
|
|
'no-undef' : 2,
|
|
'no-unused-vars' : [ 2, { vars: 'all', args: 'after-used' }],
|
|
'no-empty' : 0,
|
|
'quotes' : [ 2, 'single', { avoidEscape: true } ],
|
|
'semi' : [ 2, 'always' ],
|
|
'no-multi-spaces' : 0,
|
|
'no-whitespace-before-property' : 2,
|
|
'space-before-blocks' : 2,
|
|
'space-before-function-paren' : [ 2, 'never' ],
|
|
'space-in-parens' : [ 2, 'never' ],
|
|
'spaced-comment' : [ 2, 'always' ],
|
|
}
|
|
}))
|
|
.pipe(eslint.format());
|
|
});
|
|
|
|
gulp.task('watch', (done) =>
|
|
{
|
|
let src = [ 'gulpfile.js', 'server.js', 'config.js', 'lib/**/*.js' ];
|
|
|
|
gulp.watch(src, gulp.series(
|
|
'lint'
|
|
));
|
|
|
|
done();
|
|
});
|
|
|
|
gulp.task('default', gulp.series('lint', 'watch'));
|