diff --git a/gulpfile.js b/gulpfile.js index 94e1734..6a0fefa 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -2,21 +2,21 @@ // Define variables. const autoprefixer = require("autoprefixer"); -const browserSync = require("browser-sync").create(); -const cleancss = require("gulp-clean-css"); -const concat = require("gulp-concat"); -const del = require("del"); -const gulp = require("gulp"); -const gutil = require("gulp-util"); -const imagemin = require("gulp-imagemin"); -const notify = require("gulp-notify"); -const postcss = require("gulp-postcss"); -const rename = require("gulp-rename"); -const run = require("gulp-run"); -const runSequence = require("run-sequence"); -const sass = require("gulp-ruby-sass"); -const sprockets = require("gulp-sprockets"); -const uglify = require("gulp-uglify"); +const browserSync = require("browser-sync").create(); +const cleancss = require("gulp-clean-css"); +const concat = require("gulp-concat"); +const del = require("del"); +const gulp = require("gulp"); +const gutil = require("gulp-util"); +const imagemin = require("gulp-imagemin"); +const notify = require("gulp-notify"); +const postcss = require("gulp-postcss"); +const rename = require("gulp-rename"); +const run = require("gulp-run"); +const runSequence = require("run-sequence"); +const sass = require("gulp-ruby-sass"); +const sprockets = require("gulp-sprockets"); +const uglify = require("gulp-uglify"); // Include paths file. const paths = require("./_assets/gulp_config/paths"); @@ -25,12 +25,12 @@ sprockets.default.declare(paths.sprocketsDirs, paths.siteJsFiles); // Uses Sass compiler to process styles, adds vendor prefixes, minifies, then // outputs file to the appropriate location. -gulp.task("build:styles:main", function() { +gulp.task("build:styles:main", function () { return sass(paths.sassFiles + "/main.scss", { style: "compressed", trace: true, loadPath: [paths.sassFiles] - }).pipe(postcss([ autoprefixer({ browsers: ["last 2 versions"] }) ])) + }).pipe(postcss([autoprefixer({browsers: ["last 2 versions"]})])) .pipe(cleancss()) .pipe(gulp.dest(paths.jekyllCssFiles)) .pipe(gulp.dest(paths.siteCssFiles)) @@ -39,21 +39,21 @@ gulp.task("build:styles:main", function() { }); // Processes critical CSS, to be included in head.html. -gulp.task("build:styles:critical", function() { +gulp.task("build:styles:critical", function () { return sass(paths.sassFiles + "/critical.scss", { style: "compressed", trace: true, loadPath: [paths.sassFiles] - }).pipe(postcss([ autoprefixer({ browsers: ["last 2 versions"] }) ])) + }).pipe(postcss([autoprefixer({browsers: ["last 2 versions"]})])) .pipe(cleancss()) .pipe(gulp.dest("_includes")) .on("error", gutil.log); }); // Builds all styles. -gulp.task("build:styles", ["build:styles:main", "build:styles:critical"]); +gulp.task("build:styles", gulp.series("build:styles:main", "build:styles:critical")); -gulp.task("clean:styles", function(callback) { +gulp.task("clean:styles", function (callback) { del([paths.jekyllCssFiles + "main.css", paths.siteCssFiles + "main.css", "_includes/critical.css" @@ -63,7 +63,7 @@ gulp.task("clean:styles", function(callback) { // Concatenates and uglifies global JS files and outputs result to the // appropriate location. -gulp.task("build:scripts:global", function() { +gulp.task("build:scripts:global", function () { return gulp.src([ paths.jsFiles + "/global/lib" + paths.jsPattern, paths.jsFiles + "/global/*.js" @@ -76,14 +76,14 @@ gulp.task("build:scripts:global", function() { .on("error", gutil.log); }); -gulp.task("clean:scripts", function(callback) { +gulp.task("clean:scripts", function (callback) { del([paths.jekyllJsFiles + "main.js", paths.siteJsFiles + "main.js"]); callback(); }); // Concatenates and uglifies leaflet JS files and outputs result to the // appropriate location. -gulp.task("build:scripts:leaflet", function() { +gulp.task("build:scripts:leaflet", function () { return gulp.src([ paths.jsFiles + "/leaflet/leaflet.js", paths.jsFiles + "/leaflet/leaflet-providers.js" @@ -95,16 +95,16 @@ gulp.task("build:scripts:leaflet", function() { .on("error", gutil.log); }); -gulp.task("clean:scripts:leaflet", function(callback) { +gulp.task("clean:scripts:leaflet", function (callback) { del([paths.jekyllJsFiles + "leaflet.js", paths.siteJsFiles + "leaflet.js"]); callback(); }); // Builds all scripts. -gulp.task("build:scripts", ["build:scripts:global", "build:scripts:leaflet"]); +gulp.task("build:scripts", gulp.series("build:scripts:global", "build:scripts:leaflet")); // Optimizes and copies image files. -gulp.task("build:images", function() { +gulp.task("build:images", function () { return gulp.src(paths.imageFilesGlob) .pipe(imagemin()) .pipe(gulp.dest(paths.jekyllImageFiles)) @@ -112,13 +112,13 @@ gulp.task("build:images", function() { .pipe(browserSync.stream()); }); -gulp.task("clean:images", function(callback) { +gulp.task("clean:images", function (callback) { del([paths.jekyllImageFiles, paths.siteImageFiles]); callback(); }); // Runs jekyll build command. -gulp.task("build:jekyll", function() { +gulp.task("build:jekyll", function () { var shellCommand = "bundle exec jekyll build --config _config.yml"; return gulp.src("") @@ -127,7 +127,7 @@ gulp.task("build:jekyll", function() { }); // Runs jekyll build command using test config. -gulp.task("build:jekyll:test", function() { +gulp.task("build:jekyll:test", function () { var shellCommand = "bundle exec jekyll build --config _config.yml,_config.test.yml"; return gulp.src("") @@ -136,7 +136,7 @@ gulp.task("build:jekyll:test", function() { }); // Runs jekyll build command using local config. -gulp.task("build:jekyll:local", function() { +gulp.task("build:jekyll:local", function () { var shellCommand = "bundle exec jekyll build --config _config.yml,_config.test.yml,_config.dev.yml"; return gulp.src("") @@ -145,58 +145,58 @@ gulp.task("build:jekyll:local", function() { }); // Deletes the entire _site directory. -gulp.task("clean:jekyll", function(callback) { +gulp.task("clean:jekyll", function (callback) { del(["_site"]); callback(); }); -gulp.task("clean", ["clean:jekyll", +gulp.task("clean", gulp.series("clean:jekyll", "clean:images", "clean:scripts", - "clean:styles"]); + "clean:styles")); // Builds site anew. -gulp.task("build", function(callback) { - runSequence("clean", - ["build:scripts", "build:images", "build:styles"], - "build:jekyll", - callback); +gulp.task("build", function (callback) { + gulp.series("clean", + gulp.series("build:scripts", "build:images", "build:styles"), + "build:jekyll"); + callback(); }); // Builds site anew using test config. -gulp.task("build:test", function(callback) { - runSequence("clean", - ["build:scripts", "build:images", "build:styles"], - "build:jekyll:test", - callback); +gulp.task("build:test", function (callback) { + gulp.series("clean", + gulp.series("build:scripts", "build:images", "build:styles"), + "build:jekyll:test"); + callback(); }); // Builds site anew using local config. -gulp.task("build:local", function(callback) { - runSequence("clean", - ["build:scripts", "build:images", "build:styles"], - "build:jekyll:local", - callback); +gulp.task("build:local", function (callback) { + gulp.series("clean", + gulp.series("build:scripts", "build:images", "build:styles"), + "build:jekyll:local"); + callback(); }); // Default Task: builds site. -gulp.task("default", ["build"]); +gulp.task("default", gulp.series("build")); // Special tasks for building and then reloading BrowserSync. -gulp.task("build:jekyll:watch", ["build:jekyll:local"], function(callback) { +gulp.task("build:jekyll:watch", gulp.series("build:jekyll:local", function (callback) { browserSync.reload(); callback(); -}); +})); -gulp.task("build:scripts:watch", ["build:scripts"], function(callback) { +gulp.task("build:scripts:watch", gulp.series("build:scripts", function (callback) { browserSync.reload(); callback(); -}); +})); // Static Server + watching files. // Note: passing anything besides hard-coded literal paths with globs doesn't // seem to work with gulp.watch(). -gulp.task("serve", ["build:local"], function() { +gulp.task("serve", gulp.series("build:local", function () { browserSync.init({ server: paths.siteDir, @@ -207,43 +207,43 @@ gulp.task("serve", ["build:local"], function() { }); // Watch site settings. - gulp.watch(["_config.yml"], ["build:jekyll:watch"]); + gulp.watch(["_config.yml"], gulp.series("build:jekyll:watch")); // Watch .scss files; changes are piped to browserSync. - gulp.watch("_assets/styles/**/*.scss", ["build:styles"]); + gulp.watch("_assets/styles/**/*.scss", gulp.series("build:styles")); // Watch .js files. - gulp.watch("_assets/js/**/*.js", ["build:scripts:watch"]); + gulp.watch("_assets/js/**/*.js", gulp.series("build:scripts:watch")); // Watch image files; changes are piped to browserSync. - gulp.watch("_assets/img/**/*", ["build:images"]); + gulp.watch("_assets/img/**/*", gulp.series("build:images")); // Watch posts. - gulp.watch("_posts/**/*.+(md|markdown|MD)", ["build:jekyll:watch"]); + gulp.watch("_posts/**/*.+(md|markdown|MD)", gulp.series("build:jekyll:watch")); // Watch drafts if --drafts flag was passed. if (module.exports.drafts) { - gulp.watch("_drafts/*.+(md|markdown|MD)", ["build:jekyll:watch"]); + gulp.watch("_drafts/*.+(md|markdown|MD)", gulp.series("build:jekyll:watch")); } // Watch html and markdown files. - gulp.watch(["**/*.+(html|md|markdown|MD)", "!_site/**/*.*"], ["build:jekyll:watch"]); + gulp.watch(["**/*.+(html|md|markdown|MD)", "!_site/**/*.*"], gulp.series("build:jekyll:watch")); // Watch RSS feed XML files. - gulp.watch("**.xml", ["build:jekyll:watch"]); + gulp.watch("**.xml", gulp.series("build:jekyll:watch")); // Watch data files. - gulp.watch("_data/**.*+(yml|yaml|csv|json)", ["build:jekyll:watch"]); + gulp.watch("_data/**.*+(yml|yaml|csv|json)", gulp.series("build:jekyll:watch")); // Watch favicon.png. - gulp.watch("favicon.png", ["build:jekyll:watch"]); -}); + gulp.watch("favicon.png", gulp.series("build:jekyll:watch")); +})); // Updates Ruby gems -gulp.task("update:bundle", function() { +gulp.task("update:bundle", function () { return gulp.src("") .pipe(run("bundle install")) .pipe(run("bundle update")) - .pipe(notify({ message: "Bundle Update Complete" })) + .pipe(notify({message: "Bundle Update Complete"})) .on("error", gutil.log); });