Vastly sped up gulp watch and added livereload

This commit is contained in:
Dan Brown
2017-07-27 15:14:53 +01:00
parent f200b4183d
commit 072f6b103e
2 changed files with 21 additions and 8 deletions

View File

@ -12,8 +12,10 @@ const babelify = require("babelify");
const watchify = require("watchify"); const watchify = require("watchify");
const envify = require("envify"); const envify = require("envify");
const gutil = require("gulp-util"); const gutil = require("gulp-util");
const liveReload = require('gulp-livereload');
if (argv.production) process.env.NODE_ENV = 'production'; if (argv.production) process.env.NODE_ENV = 'production';
let isProduction = argv.production || process.env.NODE_ENV === 'production';
gulp.task('styles', () => { gulp.task('styles', () => {
let chain = gulp.src(['resources/assets/sass/**/*.scss']) let chain = gulp.src(['resources/assets/sass/**/*.scss'])
@ -24,31 +26,40 @@ gulp.task('styles', () => {
}})) }}))
.pipe(sass()) .pipe(sass())
.pipe(autoprefixer('last 2 versions')); .pipe(autoprefixer('last 2 versions'));
if (argv.production) chain = chain.pipe(minifycss()); if (isProduction) chain = chain.pipe(minifycss());
return chain.pipe(gulp.dest('public/css/')); return chain.pipe(gulp.dest('public/css/')).pipe(liveReload());
}); });
function scriptTask(watch=false) { function scriptTask(watch = false) {
let props = { let props = {
basedir: 'resources/assets/js', basedir: 'resources/assets/js',
debug: true, debug: true,
entries: ['global.js'] entries: ['global.js'],
fast: !isProduction,
cache: {},
packageCache: {},
}; };
let bundler = watch ? watchify(browserify(props), { poll: true }) : browserify(props); let bundler = watch ? watchify(browserify(props), { poll: true }) : browserify(props);
bundler.transform(envify, {global: true}).transform(babelify, {presets: ['es2015']});
if (isProduction) {
bundler.transform(envify, {global: true}).transform(babelify, {presets: ['es2015']});
}
function rebundle() { function rebundle() {
let stream = bundler.bundle(); let stream = bundler.bundle();
stream = stream.pipe(source('common.js')); stream = stream.pipe(source('common.js'));
if (argv.production) stream = stream.pipe(buffer()).pipe(uglify()); if (isProduction) stream = stream.pipe(buffer()).pipe(uglify());
return stream.pipe(gulp.dest('public/js/')); return stream.pipe(gulp.dest('public/js/')).pipe(liveReload());
} }
bundler.on('update', function() { bundler.on('update', function() {
rebundle(); rebundle();
gutil.log('Rebundle...'); gutil.log('Rebundling assets...');
}); });
bundler.on('log', gutil.log); bundler.on('log', gutil.log);
return rebundle(); return rebundle();
} }
@ -57,6 +68,7 @@ gulp.task('scripts', () => {scriptTask(false)});
gulp.task('scripts-watch', () => {scriptTask(true)}); gulp.task('scripts-watch', () => {scriptTask(true)});
gulp.task('default', ['styles', 'scripts-watch'], () => { gulp.task('default', ['styles', 'scripts-watch'], () => {
liveReload.listen();
gulp.watch("resources/assets/sass/**/*.scss", ['styles']); gulp.watch("resources/assets/sass/**/*.scss", ['styles']);
}); });

View File

@ -13,6 +13,7 @@
"gulp": "3.9.1", "gulp": "3.9.1",
"gulp-autoprefixer": "3.1.1", "gulp-autoprefixer": "3.1.1",
"gulp-clean-css": "^3.0.4", "gulp-clean-css": "^3.0.4",
"gulp-livereload": "^3.8.1",
"gulp-minify-css": "1.2.4", "gulp-minify-css": "1.2.4",
"gulp-plumber": "1.1.0", "gulp-plumber": "1.1.0",
"gulp-sass": "3.1.0", "gulp-sass": "3.1.0",