зеркало из https://github.com/mozilla/bedrock.git
85 строки
2.0 KiB
JavaScript
85 строки
2.0 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
/* global __dirname, require */
|
|
|
|
const gulp = require('gulp');
|
|
const del = require('del');
|
|
const karma = require('karma');
|
|
const eslint = require('gulp-eslint');
|
|
const watch = require('gulp-watch');
|
|
const gulpStylelint = require('gulp-stylelint');
|
|
|
|
const lintPathsJS = [
|
|
'media/js/**/*.js',
|
|
'!media/js/libs/*.js',
|
|
'tests/unit/spec/**/*.js',
|
|
'gulpfile.js'
|
|
];
|
|
|
|
const lintPathsCSS = [
|
|
'media/css/**/*.scss',
|
|
'media/css/**/*.less',
|
|
'media/css/**/*.css',
|
|
'!media/css/libs/*'
|
|
];
|
|
|
|
gulp.task('media:watch', () => {
|
|
return gulp.src('./media/**/*')
|
|
.pipe(watch('./media/**/*', {
|
|
'verbose': true
|
|
}))
|
|
.pipe(gulp.dest('./static'));
|
|
});
|
|
|
|
gulp.task('js:test', done => {
|
|
new karma.Server({
|
|
configFile: `${__dirname}/tests/unit/karma.conf.js`,
|
|
singleRun: true
|
|
}, done).start();
|
|
});
|
|
|
|
gulp.task('js:lint', () => {
|
|
return gulp.src(lintPathsJS)
|
|
.pipe(eslint())
|
|
.pipe(eslint.format())
|
|
.pipe(eslint.failAfterError());
|
|
});
|
|
|
|
|
|
gulp.task('css:lint', () => {
|
|
return gulp.src(lintPathsCSS)
|
|
.pipe(gulpStylelint({
|
|
reporters: [{
|
|
formatter: 'string',
|
|
console: true
|
|
}]
|
|
}));
|
|
});
|
|
|
|
gulp.task('static:clean', () => {
|
|
return del(['static/**', '!static', '!static/.gitignore']);
|
|
});
|
|
|
|
gulp.task('default', () => {
|
|
gulp.start('media:watch');
|
|
|
|
gulp.watch(lintPathsJS).on('change', file => {
|
|
return gulp.src(file.path)
|
|
.pipe(eslint())
|
|
.pipe(eslint.format());
|
|
});
|
|
|
|
gulp.watch(lintPathsCSS).on('change', file => {
|
|
return gulp.src(file.path)
|
|
.pipe(gulpStylelint({
|
|
failAfterError: false,
|
|
reporters: [{
|
|
formatter: 'string',
|
|
console: true
|
|
}]
|
|
}));
|
|
});
|
|
});
|