Skip to content

Instantly share code, notes, and snippets.

@Aadv1k
Last active February 9, 2022 12:34
Show Gist options
  • Save Aadv1k/b5b67161877357fbf5992dd34f0e7143 to your computer and use it in GitHub Desktop.
Save Aadv1k/b5b67161877357fbf5992dd34f0e7143 to your computer and use it in GitHub Desktop.
An imperfect gulpfile
/*
* File: gulpfile.js
* Author: Aadvik<aadv1k@outlook.com>
* Description: A simple gulp based js and sass setup with browser reload
* Source: https://gist.github.com/Aadv1k/b5b67161877357fbf5992dd34f0e7143
* License: GNU Public licence
* Build: `npm init -y && npm install -D gulp gulp-cli uglify gulp-uglify sass gulp-sass browser-sync`
*/
const gulp = require("gulp");
const uglify = require("gulp-uglify");
const sass = require("gulp-sass")(require("sass"));
const browserSync = require("browser-sync").create();
path = {
styles: {
src: "./src/scss/**/*.scss",
dest: "./dist/styles/",
},
scripts: {
src: "./src/js/**/*.js",
dest: "./dist/scripts/",
},
};
function styles() {
return gulp
.src(path.styles.src, { sourcemaps: true })
.pipe(sass({ outputStyle: "compressed" }).on("error", sass.logError))
.pipe(gulp.dest(path.styles.dest, { sourcemaps: "." }));
}
function scripts() {
return gulp
.src(path.scripts.src, { sourcemaps: true })
.pipe(uglify())
.pipe(gulp.dest(path.scripts.dest, { sourcemaps: "." }));
}
function watchFiles(cb) {
gulp.watch("./dist/*.html", reloadBrowserSync);
gulp.watch(path.styles.src, gulp.series(styles, reloadBrowserSync));
gulp.watch(path.scripts.src, gulp.series(scripts, reloadBrowserSync));
cb();
}
function initBrowserSync(cb) {
browserSync.init({
server: {
baseDir: "./dist",
},
});
cb();
}
function reloadBrowserSync(cb) {
browserSync.reload();
cb();
}
exports.watch = gulp.series(styles, scripts, initBrowserSync, watchFiles);
exports.build = gulp.series(styles, scripts);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment