mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-06-07 19:34:33 +08:00
Vastly sped up gulp watch and added livereload
This commit is contained in:
28
gulpfile.js
28
gulpfile.js
@ -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']);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -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",
|
||||||
|
Reference in New Issue
Block a user