aboutsummaryrefslogtreecommitdiffstats
path: root/gulpfile.js
diff options
context:
space:
mode:
Diffstat (limited to 'gulpfile.js')
-rw-r--r--gulpfile.js49
1 files changed, 30 insertions, 19 deletions
diff --git a/gulpfile.js b/gulpfile.js
index 7711e269..2623ebaf 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -6,24 +6,28 @@
const path = require('path');
const gulp = require('gulp');
-
+// ------------------------------------
// JavaScript
+// ------------------------------------
const terser = require('gulp-terser');
const rollup = require('gulp-better-rollup');
const babel = require('rollup-plugin-babel');
const commonjs = require('rollup-plugin-commonjs');
const resolve = require('rollup-plugin-node-resolve');
-
+// ------------------------------------
// CSS
+// ------------------------------------
const sass = require('gulp-sass');
const clean = require('gulp-clean-css');
const prefix = require('gulp-autoprefixer');
-
+// ------------------------------------
// Images
+// ------------------------------------
const svgstore = require('gulp-svgstore');
const imagemin = require('gulp-imagemin');
-
+// ------------------------------------
// Utils
+// ------------------------------------
const del = require('del');
const filter = require('gulp-filter');
const header = require('gulp-header');
@@ -37,18 +41,22 @@ const plumber = require('gulp-plumber');
const size = require('gulp-size');
const sourcemaps = require('gulp-sourcemaps');
const through = require('through2');
-
+// ------------------------------------
// Deployment
+// ------------------------------------
const aws = require('aws-sdk');
const publish = require('gulp-awspublish');
const FastlyPurge = require('fastly-purge');
-
+// ------------------------------------
+// Configs
+// ------------------------------------
const pkg = require('./package.json');
const build = require('./build.json');
const deploy = require('./deploy.json');
-
+// ------------------------------------
+// Info from package
+// ------------------------------------
const { browserslist: browsers, version } = pkg;
-
const minSuffix = '.min';
// Get AWS config
@@ -125,15 +133,16 @@ gulp.task(tasks.clean, done => {
// JavaScript
Object.entries(build.js).forEach(([filename, entry]) => {
- entry.formats.forEach(format => {
+ const { dist, formats, namespace, polyfill, src } = entry;
+
+ formats.forEach(format => {
const name = `js:${filename}:${format}`;
- tasks.js.push(name);
- const polyfill = filename.includes('polyfilled');
const extension = format === 'es' ? 'mjs' : 'js';
+ tasks.js.push(name);
gulp.task(name, () =>
gulp
- .src(entry.src)
+ .src(src)
.pipe(plumber())
.pipe(sourcemaps.init())
.pipe(
@@ -159,7 +168,7 @@ Object.entries(build.js).forEach(([filename, entry]) => {
],
},
{
- name: entry.namespace,
+ name: namespace,
format,
},
),
@@ -170,25 +179,26 @@ Object.entries(build.js).forEach(([filename, entry]) => {
extname: `.${extension}`,
}),
)
- .pipe(gulp.dest(entry.dist))
+ .pipe(gulp.dest(dist))
.pipe(filter(`**/*.${extension}`))
.pipe(terser())
.pipe(rename({ suffix: minSuffix }))
.pipe(size(sizeOptions))
.pipe(sourcemaps.write(''))
- .pipe(gulp.dest(entry.dist)),
+ .pipe(gulp.dest(dist)),
);
});
});
// CSS
Object.entries(build.css).forEach(([filename, entry]) => {
+ const { dist, src } = entry;
const name = `css:${filename}`;
tasks.css.push(name);
gulp.task(name, () =>
gulp
- .src(entry.src)
+ .src(src)
.pipe(plumber())
.pipe(sass())
.pipe(
@@ -198,24 +208,25 @@ Object.entries(build.css).forEach(([filename, entry]) => {
)
.pipe(clean())
.pipe(size(sizeOptions))
- .pipe(gulp.dest(entry.dist)),
+ .pipe(gulp.dest(dist)),
);
});
// SVG Sprites
Object.entries(build.sprite).forEach(([filename, entry]) => {
+ const { dist, src } = entry;
const name = `sprite:${filename}`;
tasks.sprite.push(name);
gulp.task(name, () =>
gulp
- .src(entry.src)
+ .src(src)
.pipe(plumber())
.pipe(imagemin())
.pipe(svgstore())
.pipe(rename({ basename: path.parse(filename).name }))
.pipe(size(sizeOptions))
- .pipe(gulp.dest(entry.dist)),
+ .pipe(gulp.dest(dist)),
);
});