Skip to content

Instantly share code, notes, and snippets.

@franciscohanna92
Last active June 12, 2018 16:52
Show Gist options
  • Save franciscohanna92/781c906e436be58757436c0b00c6fe11 to your computer and use it in GitHub Desktop.
Save franciscohanna92/781c906e436be58757436c0b00c6fe11 to your computer and use it in GitHub Desktop.
Uglify js, preprocess scss and watchers
const gulp = require('gulp');
var gutil = require('gulp-util');
const concat = require('gulp-concat');
const uglify = require('gulp-uglify-es').default;
const rename = require('gulp-rename');
var sass = require('gulp-sass');
let cleanCss = require('gulp-clean-css');
var sourcemaps = require('gulp-sourcemaps');
const vendorJs = [
// vendor js files
]
const appJs = [
// src js
]
// Tasks
gulp.task('uglify-app-js', () => {
return gulp
.src(appJs)
.pipe(sourcemaps.init())
.pipe(concat('bundle.min.js'))
.pipe(uglify())
.pipe(sourcemaps.write('./maps'))
.pipe(gulp.dest('./dist'));
});
gulp.task('uglify-vendor-js', () => {
gulp
.src(vendorJs)
.pipe(concat('vendor.min.js'))
.pipe(gulp.dest('./dist'))
.pipe(uglify())
.pipe(gulp.dest('./dist'))
});
gulp.task('process-scss', () => {
gulp.src('./src/scss/main.scss')
.pipe(sass().on('error', sass.logError))
.pipe(cleanCss())
.pipe(rename('main.min.css'))
.pipe(gulp.dest('./dist'))
});
gulp.task('copy-assets', () => {
gulp
.src('./src/assets/**/*')
.pipe(gulp.dest('./dist/assets'));
});
// Watchers
gulp.task('watch-app-js', function () {
gulp
.watch(appJs, ['uglify-app-js']);
});
gulp.task('watch-scss', function () {
gulp
.watch('./src/scss/**/*.scss', ['process-scss']);
});
gulp.task('watch-assets', function () {
gulp
.watch('./src/assets/**/*', ['copy-assets']);
});
gulp.task('build', ['uglify-app-js', 'uglify-vendor-js', 'copy-assets', 'process-scss']);
gulp.task('watch', ['build', 'watch-app-js', 'watch-scss', 'watch-assets']);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment