diff options
Diffstat (limited to 'gulpfile.js')
-rw-r--r-- | gulpfile.js | 49 |
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)), ); }); |