Skip to content

Instantly share code, notes, and snippets.

@dominicgan
Created May 11, 2016 10:18
Show Gist options
  • Save dominicgan/4d0d76be8835c25e9d5cbf112e7b58bf to your computer and use it in GitHub Desktop.
Save dominicgan/4d0d76be8835c25e9d5cbf112e7b58bf to your computer and use it in GitHub Desktop.
iweb front-end dev gulpfile
var gulp = require('gulp');
var open = require('gulp-open');
var gulpsass = require('gulp-sass');
var browserSync = require('browser-sync');
var gutil = require('gulp-util');
var del = require('del');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var filesize = require('gulp-filesize');
// var postcss = require('gulp-postcss');
var autoprefixer = require('gulp-autoprefixer');
var cssnano = require('gulp-cssnano');
var sourcemaps = require('gulp-sourcemaps');
var clone = require('gulp-clone');
var merge = require('gulp-merge');
var plumber = require('gulp-plumber');
var clip = require('gulp-clip-empty-files');
var notify = require('gulp-notify');
// gulp.task('openwamp', function(){
// gulp.src('C:/wamp/wampmanager.exe')
// .pipe(open());
// });
gulp.task('clean:iwebjs', function(){
return del([
'app/js/iweb.layout.min.js'
]);
});
gulp.task('iwebjs', ['clean:iwebjs'], function(){
return gulp.src('app/js/iweb_mobile_responsive.layout-functions.js')
.pipe(gulp.dest('app/js'))
.pipe(gulp.dest('C:/Users/dgan3/workspace/iweb-revamp/dist/js'))
.pipe(filesize())
.pipe(uglify())
.pipe(rename('iweb.layout.min.js'))
.pipe(gulp.dest('app/js'))
.pipe(gulp.dest('C:/Users/dgan3/workspace/iweb-revamp/dist/js'))
.pipe(filesize())
.on('error', gutil.log)
});
gulp.task('sass', function(){
var source = gulp.src('scss/mobile_fix.scss')
.pipe(plumber())
.pipe(sourcemaps.init()) // Start Sourcemaps
.pipe(gulpsass().on('error', gulpsass.logError))
.pipe(rename('iweb_revamp.css'))
.on('error', gutil.log);
var pipe1 = source.pipe(clone())
.pipe(sourcemaps.write('maps'))
.pipe(gulp.dest('app/css')); // Create sourcemap
var pipe2 = source.pipe(clone())
.pipe(rename({suffix: '.min'}))
.pipe(cssnano({
convertValues: {
length: false
},
discardComments: {
removeAll: true
}
}))
.pipe(sourcemaps.write('maps'))
.pipe(clip())
.pipe(gulp.dest('app/css'));
return merge(pipe1, pipe2);
});
gulp.task('browser-sync', ['clean:iwebjs', 'sass', 'iwebjs' ], function() {
browserSync.init(["app/css/**/*.css", "app/js/**/*.js", "*.html", "app/images/*.*", "app/staff_pictures/**/*.jpg", "app/news_pictures/**/*.jpg", "app/protected/**/*.php", "app/protected/**/*.markdown"], {
proxy: "localhost",
port: 30038,
open: false,
// browser: ["chrome"],
ui: {
port: 30034,
weinre: {
port: 30035
}
}
});
});
// gulp.task('webserver', function() {
gulp.task('default', ['clean:iwebjs', 'sass', 'browser-sync', 'iwebjs'], function () {
gulp.watch("scss/**/*.scss", ['sass']);
gulp.watch("app/js/iweb_mobile_responsive.layout-functions.js", ['clean:iwebjs','iwebjs']);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment