62 lines
1.3 KiB
JavaScript
62 lines
1.3 KiB
JavaScript
"use strict";
|
|
|
|
// Load plugins
|
|
const browsersync = require("browser-sync").create();
|
|
const del = require("del");
|
|
const gulp = require("gulp");
|
|
const merge = require("merge-stream");
|
|
|
|
// BrowserSync
|
|
function browserSync(done) {
|
|
browsersync.init({
|
|
server: {
|
|
baseDir: "./"
|
|
},
|
|
port: 3000
|
|
});
|
|
done();
|
|
}
|
|
|
|
// BrowserSync reload
|
|
function browserSyncReload(done) {
|
|
browsersync.reload();
|
|
done();
|
|
}
|
|
|
|
// Clean vendor
|
|
function clean() {
|
|
return del(["./vendor/"]);
|
|
}
|
|
|
|
// Bring third party dependencies from node_modules into vendor directory
|
|
function modules() {
|
|
// Bootstrap
|
|
var bootstrap = gulp.src('./node_modules/bootstrap/dist/**/*')
|
|
.pipe(gulp.dest('./vendor/bootstrap'));
|
|
// jQuery
|
|
var jquery = gulp.src([
|
|
'./node_modules/jquery/dist/*',
|
|
'!./node_modules/jquery/dist/core.js'
|
|
])
|
|
.pipe(gulp.dest('./vendor/jquery'));
|
|
return merge(bootstrap, jquery);
|
|
}
|
|
|
|
// Watch files
|
|
function watchFiles() {
|
|
gulp.watch("./**/*.css", browserSyncReload);
|
|
gulp.watch("./**/*.html", browserSyncReload);
|
|
}
|
|
|
|
// Define complex tasks
|
|
const vendor = gulp.series(clean, modules);
|
|
const build = gulp.series(vendor);
|
|
const watch = gulp.series(build, gulp.parallel(watchFiles, browserSync));
|
|
|
|
// Export tasks
|
|
exports.clean = clean;
|
|
exports.vendor = vendor;
|
|
exports.build = build;
|
|
exports.watch = watch;
|
|
exports.default = build;
|