diff options
Diffstat (limited to 'gulpfile.js')
-rw-r--r-- | gulpfile.js | 39 |
1 files changed, 34 insertions, 5 deletions
diff --git a/gulpfile.js b/gulpfile.js index 2623ebaf..66966617 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,7 +1,6 @@ // ========================================================================== // Gulp build script // ========================================================================== -/* global require, __dirname */ /* eslint no-console: "off" */ const path = require('path'); @@ -41,6 +40,7 @@ const plumber = require('gulp-plumber'); const size = require('gulp-size'); const sourcemaps = require('gulp-sourcemaps'); const through = require('through2'); +const browserSync = require('browser-sync').create(); // ------------------------------------ // Deployment // ------------------------------------ @@ -222,7 +222,13 @@ Object.entries(build.sprite).forEach(([filename, entry]) => { gulp .src(src) .pipe(plumber()) - .pipe(imagemin()) + .pipe( + imagemin([ + imagemin.svgo({ + plugins: [{ removeViewBox: false }], + }), + ]), + ) .pipe(svgstore()) .pipe(rename({ basename: path.parse(filename).name })) .pipe(size(sizeOptions)) @@ -245,11 +251,23 @@ gulp.task('watch', () => { gulp.watch(paths.demo.src.sass, gulp.parallel(...tasks.css)); }); +// Serve via browser sync +gulp.task('serve', () => + browserSync.init({ + server: { + baseDir: paths.demo.root, + }, + notify: false, + watch: true, + ghostMode: false, + }), +); + // Build distribution gulp.task('build', gulp.series(tasks.clean, gulp.parallel(...tasks.js, ...tasks.css, ...tasks.sprite))); // Default gulp task -gulp.task('default', gulp.series('build', 'watch')); +gulp.task('default', gulp.series('build', gulp.parallel('serve', 'watch'))); // Publish a version to CDN and demo // -------------------------------------------- @@ -276,7 +294,7 @@ const options = { }, }, demo: { - uploadPath: branch.current === branch.beta ? 'beta' : null, + uploadPath: branch.current === branch.beta ? '/beta' : null, headers: { 'Cache-Control': 'no-cache, no-store, must-revalidate, max-age=0', }, @@ -331,7 +349,10 @@ gulp.task('version', done => { const files = ['plyr.js', 'plyr.polyfilled.js', 'config/defaults.js']; return gulp - .src(files.map(file => path.join(__dirname, `src/js/${file}`)), { base: '.' }) + .src( + files.map(file => path.join(__dirname, `src/js/${file}`)), + { base: '.' }, + ) .pipe(replace(semver, `v${version}`)) .pipe(replace(cdnpath, `${domain}/${version}/`)) .pipe(gulp.dest('./')); @@ -440,6 +461,14 @@ gulp.task('demo', done => { return gulp .src(pages) .pipe(replace(localPath, versionPath)) + .pipe( + rename(p => { + if (options.demo.uploadPath) { + // eslint-disable-next-line no-param-reassign + p.dirname += options.demo.uploadPath; + } + }), + ) .pipe(publisher.publish(options.demo.headers)) .pipe(publish.reporter()); }); |