93 lines
2.2 KiB
JavaScript
93 lines
2.2 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
const gulp = require('gulp');
|
||
|
const $ = require('gulp-load-plugins')();
|
||
|
|
||
|
require('es6-promise').polyfill();
|
||
|
|
||
|
const webpack = require("webpack");
|
||
|
const webpackStream = require("webpack-stream");
|
||
|
const webpackConfig = require("./webpack.config");
|
||
|
|
||
|
const src_paths = {
|
||
|
sass: ['src/scss/*.scss'],
|
||
|
script: ['src/js/*.js'],
|
||
|
};
|
||
|
|
||
|
const dest_paths = {
|
||
|
style: 'static/css/',
|
||
|
script: 'static/js/',
|
||
|
};
|
||
|
|
||
|
function lint_sass() {
|
||
|
return gulp.src(src_paths.sass)
|
||
|
.pipe($.plumber({
|
||
|
errorHandler: function(err) {
|
||
|
console.log(err.messageFormatted);
|
||
|
this.emit('end');
|
||
|
}
|
||
|
}))
|
||
|
.pipe($.stylelint({
|
||
|
config: {
|
||
|
extends: [
|
||
|
"stylelint-config-recommended",
|
||
|
"stylelint-scss",
|
||
|
"stylelint-config-recommended-scss"
|
||
|
],
|
||
|
rules: {
|
||
|
"block-no-empty": null,
|
||
|
"no-descending-specificity": null
|
||
|
}
|
||
|
},
|
||
|
reporters: [{
|
||
|
formatter: 'string',
|
||
|
console: true
|
||
|
}]
|
||
|
}));
|
||
|
};
|
||
|
|
||
|
function style_sass() {
|
||
|
return gulp.src(src_paths.sass)
|
||
|
.pipe($.plumber({
|
||
|
errorHandler: function(err) {
|
||
|
console.log(err.messageFormatted);
|
||
|
this.emit('end');
|
||
|
}
|
||
|
}))
|
||
|
.pipe($.sass({
|
||
|
outputStyle: 'expanded'
|
||
|
}).on( 'error', $.sass.logError ))
|
||
|
.pipe($.autoprefixer({
|
||
|
cascade: false
|
||
|
}))
|
||
|
.pipe(gulp.dest(dest_paths.style))
|
||
|
.pipe($.cssnano())
|
||
|
.pipe($.rename({ suffix: '.min' }))
|
||
|
.pipe(gulp.dest(dest_paths.style));
|
||
|
}
|
||
|
|
||
|
function lint_eslint() {
|
||
|
return gulp.src(src_paths.script)
|
||
|
.pipe($.eslint.format())
|
||
|
.pipe($.eslint.failAfterError());
|
||
|
};
|
||
|
|
||
|
function script() {
|
||
|
return webpackStream(webpackConfig, webpack)
|
||
|
.on('error', function (e) {
|
||
|
this.emit('end');
|
||
|
})
|
||
|
.pipe(gulp.dest("dist"));
|
||
|
};
|
||
|
|
||
|
function watch_files(done) {
|
||
|
gulp.watch(src_paths.sass).on('change', gulp.series(lint_sass, style_sass));
|
||
|
gulp.watch(src_paths.script).on('change', gulp.series(lint_eslint, script));
|
||
|
}
|
||
|
|
||
|
exports.lint = gulp.parallel(lint_sass, lint_eslint);
|
||
|
exports.style = style_sass;
|
||
|
exports.script = script;
|
||
|
exports.watch = watch_files;
|
||
|
exports.default = gulp.series(gulp.parallel(lint_sass, lint_eslint), gulp.parallel(style_sass, script));
|