From 4296b41fafc4c58a90e92b4a2cac02ef408188f1 Mon Sep 17 00:00:00 2001 From: Lukas Juhas Date: Tue, 21 Nov 2017 17:27:56 +0000 Subject: [PATCH] implement notifications --- assets/icons/error.png | Bin 0 -> 1919 bytes assets/icons/success.png | Bin 0 -> 1919 bytes gulpfile.babel.js | 176 +++++++++++++++++++++++---------------- package.json | 1 + 4 files changed, 106 insertions(+), 71 deletions(-) create mode 100644 assets/icons/error.png create mode 100644 assets/icons/success.png diff --git a/assets/icons/error.png b/assets/icons/error.png new file mode 100644 index 0000000000000000000000000000000000000000..45f441ff196ed1ce463dcd27b79c579a3048bfaf GIT binary patch literal 1919 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 a4VMm8W7veNw?3>NHW1_=LjBd3k@XMzK!} ( - gulp.src(`${config.public}/css`, { - read: false, - }) - .pipe(clean()) + gulp.src(`${config.public}/css`, { + read: false, + }) + .pipe(clean()) )); gulp.task('styles', ['clean-styles'], () => ( - gulp.src([`${config.src}/styles/*.scss`]) - .pipe(gulpif(!production, sourcemaps.init())) - .pipe(sass({ - outputStyle: production ? 'compressed' : 'nested', - }).on('error', sass.logError)) - .pipe(autoprefixer({ - browsers: ['last 10 versions'], - })) - .pipe(rename({ - suffix: '.min', - })) - .pipe(gulpif(!production, sourcemaps.write('.'))) - .pipe(gulp.dest(`${config.public}/css`)) + gulp.src([`${config.src}/styles/*.scss`]) + .pipe(gulpif(!production, sourcemaps.init())) + .pipe(sass({ + outputStyle: production ? 'compressed' : 'nested', + }).on('error', (err) => { + notification('Failed to compile styles. 😱', 'error'); + log(err.stack); + error = true; + })) + .pipe(autoprefixer({ + browsers: ['last 10 versions'], + })) + .pipe(rename({ + suffix: '.min', + })) + .pipe(gulpif(!production, sourcemaps.write('.'))) + .pipe(gulp.dest(`${config.public}/css`)) )); /** * Scripts */ gulp.task('clean-scripts', () => ( - gulp.src(`${config.public}/js`, { - read: false, - }) - .pipe(clean()) + gulp.src(`${config.public}/js`, { + read: false, + }) + .pipe(clean()) )); gulp.task('scripts', ['clean-scripts'], () => { - let env = 'development'; - if (production) { - env = 'production'; - } + let env = 'development'; + if (production) { + env = 'production'; + } - rollup({ - entry: `${config.src}/scripts/scripts.js`, - plugins: [ - multiEntry(), - buble(), - nodeResolve({ - browser: true, - main: true, - jsnext: true, - }), - commonjs({ - include: [ - 'node_modules/**', - `${config.src}/**`, + rollup({ + entry: `${config.src}/scripts/scripts.js`, + plugins: [ + multiEntry(), + buble(), + nodeResolve({ + browser: true, + main: true, + jsnext: true, + }), + commonjs({ + include: [ + 'node_modules/**', + `${config.src}/**`, + ], + }), + json(), + replace({ + 'process.env.NODE_ENV': JSON.stringify(env), + }), + production ? uglify({}, minify) : '', ], - }), - json(), - replace({ - 'process.env.NODE_ENV': JSON.stringify(env), - }), - production ? uglify({}, minify) : '', - ], - }).then((bundle) => { - bundle.write({ - format: 'iife', - moduleName: 'BarebonesBundle', - sourceMap: !production, - dest: `${config.public}/js/script.min.js`, + }).then((bundle) => { + bundle.write({ + format: 'iife', + moduleName: 'BarebonesBundle', + sourceMap: !production, + dest: `${config.public}/js/script.min.js`, + }); + }).catch(err => { + notification('Failed to compile scripts. 😱', 'error'); + log(err.stack); + error = true; }); - }).catch(err => log(err.stack)); }); /** * Watch */ gulp.task('watch-files', tasks, () => { - gulp.watch(`${config.src}/styles/**/*.scss`, ['styles']); - gulp.watch(`${config.src}/scripts/**/*.js`, ['scripts']); - gulp.watch(`${config.src}/images/**/*.*`, ['images']); + gulp.watch(`${config.src}/styles/**/*.scss`, ['styles']); + gulp.watch(`${config.src}/scripts/**/*.js`, ['scripts']); + gulp.watch(`${config.src}/images/**/*.*`, ['images']); }); /** * Images */ gulp.task('images', () => { - // hadle all images that are not svg - gulp.src(`${config.src}/images/**/*.*`) - .pipe(imagemin({ - progressive: true, - svgoPlugins: [{ - removeViewBox: false, - }], - })) - .pipe(gulp.dest(`${config.public}/img`)); + // hadle all images that are not svg + gulp.src(`${config.src}/images/**/*.*`) + .pipe(imagemin({ + progressive: true, + svgoPlugins: [{ + removeViewBox: false, + }], + })) + .pipe(gulp.dest(`${config.public}/img`)); }); /** * Main Tasks */ gulp.task('watch', () => ( - runSequence(tasks, 'watch-files') + runSequence(tasks, 'watch-files', () => { + if (!error) { + notification('Watching files... 👀'); + } + }) )); gulp.task('build', () => { - production = true; - runSequence(tasks); + production = true; + runSequence(tasks, () => { + if(!error) { + notification('Build complete! 🍻'); + } + }); }); gulp.task('default', () => ( - runSequence(tasks) + runSequence(tasks) )); diff --git a/package.json b/package.json index 257d86e..ad557a4 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "gulp-clean": "^0.3.2", "gulp-if": "^2.0.2", "gulp-imagemin": "^3.4.0", + "gulp-notify": "^3.0.0", "gulp-rename": "^1.2.2", "gulp-sass": "^3.1.0", "gulp-sourcemaps": "^2.6.1",