You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.7 KiB
JavaScript
63 lines
1.7 KiB
JavaScript
4 years ago
|
const {series, parallel, src, dest, watch} = require('gulp');
|
||
|
const csso = require('gulp-csso');
|
||
|
const del = require('delete');
|
||
|
const rename = require('gulp-rename');
|
||
|
const replace = require('gulp-replace');
|
||
|
const sourcemaps = require('gulp-sourcemaps');
|
||
|
const uglify = require('gulp-uglify');
|
||
|
|
||
2 years ago
|
const sass = require('gulp-sass')(require('sass'));
|
||
4 years ago
|
|
||
|
function clean(cb) {
|
||
|
del(['./public/js/*.js', './public/css/*.css'], cb);
|
||
|
}
|
||
|
|
||
|
function cssTranspile() {
|
||
|
return src('src/scss/**/*.scss')
|
||
|
.pipe(sourcemaps.init())
|
||
|
.pipe(sass())
|
||
|
.pipe(dest('public/css'))
|
||
|
.pipe(sourcemaps.write());
|
||
|
}
|
||
|
|
||
|
function cssMinify() {
|
||
|
return src('public/css/styles.css')
|
||
|
.pipe(csso())
|
||
|
.pipe(rename({extname: '.min.css'}))
|
||
|
.pipe(dest('public/css'));
|
||
|
}
|
||
|
|
||
|
function jsMinify() {
|
||
|
return src('src/js/*.js')
|
||
|
.pipe(uglify())
|
||
|
.pipe(rename({extname: '.min.js'}))
|
||
|
.pipe(dest('public/js'));
|
||
|
}
|
||
|
|
||
|
function publishAssets() {
|
||
|
return src([
|
||
1 year ago
|
'node_modules/bootstrap/dist/js/bootstrap.bundle.min.js',
|
||
|
'node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map',
|
||
1 year ago
|
'node_modules/node-forge/dist/forge.min.js',
|
||
1 year ago
|
'node_modules/node-forge/dist/forge.min.js.map',
|
||
4 years ago
|
]).pipe(dest('public/js'));
|
||
|
}
|
||
|
|
||
|
function publish() {
|
||
4 years ago
|
return src('src/*.html').pipe(replace('../public/', '')).pipe(dest('public'));
|
||
4 years ago
|
}
|
||
|
|
||
|
exports.default = series(
|
||
|
clean,
|
||
|
cssTranspile,
|
||
|
parallel(cssMinify, jsMinify),
|
||
|
publishAssets,
|
||
|
publish
|
||
|
);
|
||
|
|
||
|
exports.watch = function () {
|
||
|
watch('src/js/*.js', series(jsMinify, publish));
|
||
|
watch('src/scss/*.scss', series(cssTranspile, cssMinify, publish));
|
||
|
watch('src/*.html', publish);
|
||
|
}
|