NPM: Upgrade to Gulp 4
No functional changes. Besides slightly faster thanks to parallel tasks and future proof.
This commit is contained in:
parent
aa63389b4f
commit
e2432f6e9f
78
gulpfile.js
78
gulpfile.js
@ -1,20 +1,20 @@
|
|||||||
var argv = require('minimist')(process.argv.slice(2));
|
let argv = require('minimist')(process.argv.slice(2));
|
||||||
var autoprefixer = require('gulp-autoprefixer');
|
let autoprefixer = require('gulp-autoprefixer');
|
||||||
var cache = require('gulp-cached');
|
let cache = require('gulp-cached');
|
||||||
var chmod = require('gulp-chmod');
|
let chmod = require('gulp-chmod');
|
||||||
var concat = require('gulp-concat');
|
let concat = require('gulp-concat');
|
||||||
var git = require('gulp-git');
|
let git = require('gulp-git');
|
||||||
var gulpif = require('gulp-if');
|
let gulpif = require('gulp-if');
|
||||||
var gulp = require('gulp');
|
let gulp = require('gulp');
|
||||||
var livereload = require('gulp-livereload');
|
let livereload = require('gulp-livereload');
|
||||||
var plumber = require('gulp-plumber');
|
let plumber = require('gulp-plumber');
|
||||||
var pug = require('gulp-pug');
|
let pug = require('gulp-pug');
|
||||||
var rename = require('gulp-rename');
|
let rename = require('gulp-rename');
|
||||||
var sass = require('gulp-sass');
|
let sass = require('gulp-sass');
|
||||||
var sourcemaps = require('gulp-sourcemaps');
|
let sourcemaps = require('gulp-sourcemaps');
|
||||||
var uglify = require('gulp-uglify-es').default;
|
let uglify = require('gulp-uglify-es').default;
|
||||||
|
|
||||||
var enabled = {
|
let enabled = {
|
||||||
uglify: argv.production,
|
uglify: argv.production,
|
||||||
maps: !argv.production,
|
maps: !argv.production,
|
||||||
failCheck: !argv.production,
|
failCheck: !argv.production,
|
||||||
@ -24,20 +24,20 @@ var enabled = {
|
|||||||
chmod: argv.production,
|
chmod: argv.production,
|
||||||
};
|
};
|
||||||
|
|
||||||
var destination = {
|
let destination = {
|
||||||
css: 'pillar/web/static/assets/css',
|
css: 'pillar/web/static/assets/css',
|
||||||
pug: 'pillar/web/templates',
|
pug: 'pillar/web/templates',
|
||||||
js: 'pillar/web/static/assets/js',
|
js: 'pillar/web/static/assets/js',
|
||||||
}
|
}
|
||||||
|
|
||||||
var source = {
|
let source = {
|
||||||
bootstrap: 'node_modules/bootstrap/',
|
bootstrap: 'node_modules/bootstrap/',
|
||||||
jquery: 'node_modules/jquery/',
|
jquery: 'node_modules/jquery/',
|
||||||
popper: 'node_modules/popper.js/'
|
popper: 'node_modules/popper.js/'
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CSS */
|
/* Stylesheets */
|
||||||
gulp.task('styles', function() {
|
gulp.task('styles', function(done) {
|
||||||
gulp.src('src/styles/**/*.sass')
|
gulp.src('src/styles/**/*.sass')
|
||||||
.pipe(gulpif(enabled.failCheck, plumber()))
|
.pipe(gulpif(enabled.failCheck, plumber()))
|
||||||
.pipe(gulpif(enabled.maps, sourcemaps.init()))
|
.pipe(gulpif(enabled.maps, sourcemaps.init()))
|
||||||
@ -48,11 +48,12 @@ gulp.task('styles', function() {
|
|||||||
.pipe(gulpif(enabled.maps, sourcemaps.write(".")))
|
.pipe(gulpif(enabled.maps, sourcemaps.write(".")))
|
||||||
.pipe(gulp.dest(destination.css))
|
.pipe(gulp.dest(destination.css))
|
||||||
.pipe(gulpif(argv.livereload, livereload()));
|
.pipe(gulpif(argv.livereload, livereload()));
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
/* Templates - Pug */
|
/* Templates */
|
||||||
gulp.task('templates', function() {
|
gulp.task('templates', function(done) {
|
||||||
gulp.src('src/templates/**/*.pug')
|
gulp.src('src/templates/**/*.pug')
|
||||||
.pipe(gulpif(enabled.failCheck, plumber()))
|
.pipe(gulpif(enabled.failCheck, plumber()))
|
||||||
.pipe(gulpif(enabled.cachify, cache('templating')))
|
.pipe(gulpif(enabled.cachify, cache('templating')))
|
||||||
@ -61,11 +62,12 @@ gulp.task('templates', function() {
|
|||||||
}))
|
}))
|
||||||
.pipe(gulp.dest(destination.pug))
|
.pipe(gulp.dest(destination.pug))
|
||||||
.pipe(gulpif(argv.livereload, livereload()));
|
.pipe(gulpif(argv.livereload, livereload()));
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
/* Individual Uglified Scripts */
|
/* Individual Uglified Scripts */
|
||||||
gulp.task('scripts', function() {
|
gulp.task('scripts', function(done) {
|
||||||
gulp.src('src/scripts/*.js')
|
gulp.src('src/scripts/*.js')
|
||||||
.pipe(gulpif(enabled.failCheck, plumber()))
|
.pipe(gulpif(enabled.failCheck, plumber()))
|
||||||
.pipe(gulpif(enabled.cachify, cache('scripting')))
|
.pipe(gulpif(enabled.cachify, cache('scripting')))
|
||||||
@ -76,6 +78,7 @@ gulp.task('scripts', function() {
|
|||||||
.pipe(gulpif(enabled.chmod, chmod(0o644)))
|
.pipe(gulpif(enabled.chmod, chmod(0o644)))
|
||||||
.pipe(gulp.dest(destination.js))
|
.pipe(gulp.dest(destination.js))
|
||||||
.pipe(gulpif(argv.livereload, livereload()));
|
.pipe(gulpif(argv.livereload, livereload()));
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@ -83,7 +86,7 @@ gulp.task('scripts', function() {
|
|||||||
* Since it's always loaded, it's only for functions that we want site-wide.
|
* Since it's always loaded, it's only for functions that we want site-wide.
|
||||||
* It also includes jQuery and Bootstrap (and its dependency popper), since
|
* It also includes jQuery and Bootstrap (and its dependency popper), since
|
||||||
* the site doesn't work without it anyway.*/
|
* the site doesn't work without it anyway.*/
|
||||||
gulp.task('scripts_concat_tutti', function() {
|
gulp.task('scripts_concat_tutti', function(done) {
|
||||||
|
|
||||||
toUglify = [
|
toUglify = [
|
||||||
source.jquery + 'dist/jquery.min.js',
|
source.jquery + 'dist/jquery.min.js',
|
||||||
@ -106,6 +109,7 @@ gulp.task('scripts_concat_tutti', function() {
|
|||||||
.pipe(gulpif(enabled.chmod, chmod(0o644)))
|
.pipe(gulpif(enabled.chmod, chmod(0o644)))
|
||||||
.pipe(gulp.dest(destination.js))
|
.pipe(gulp.dest(destination.js))
|
||||||
.pipe(gulpif(argv.livereload, livereload()));
|
.pipe(gulpif(argv.livereload, livereload()));
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@ -123,22 +127,24 @@ gulp.task('scripts_move_vendor', function(done) {
|
|||||||
|
|
||||||
|
|
||||||
// While developing, run 'gulp watch'
|
// While developing, run 'gulp watch'
|
||||||
gulp.task('watch',function() {
|
gulp.task('watch',function(done) {
|
||||||
// Only listen for live reloads if ran with --livereload
|
// Only listen for live reloads if ran with --livereload
|
||||||
if (argv.livereload){
|
if (argv.livereload){
|
||||||
livereload.listen();
|
livereload.listen();
|
||||||
}
|
}
|
||||||
|
|
||||||
gulp.watch('src/styles/**/*.sass',['styles']);
|
gulp.watch('src/styles/**/*.sass',gulp.series('styles'));
|
||||||
gulp.watch('src/templates/**/*.pug',['templates']);
|
gulp.watch('src/templates/**/*.pug',gulp.series('templates'));
|
||||||
gulp.watch('src/scripts/*.js',['scripts']);
|
gulp.watch('src/scripts/*.js',gulp.series('scripts'));
|
||||||
gulp.watch('src/scripts/tutti/**/*.js',['scripts_concat_tutti']);
|
gulp.watch('src/scripts/tutti/**/*.js',gulp.series('scripts_concat_tutti'));
|
||||||
|
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// Erases all generated files in output directories.
|
// Erases all generated files in output directories.
|
||||||
gulp.task('cleanup', function() {
|
gulp.task('cleanup', function(done) {
|
||||||
var paths = [];
|
let paths = [];
|
||||||
for (attr in destination) {
|
for (attr in destination) {
|
||||||
paths.push(destination[attr]);
|
paths.push(destination[attr]);
|
||||||
}
|
}
|
||||||
@ -146,17 +152,19 @@ gulp.task('cleanup', function() {
|
|||||||
git.clean({ args: '-f -X ' + paths.join(' ') }, function (err) {
|
git.clean({ args: '-f -X ' + paths.join(' ') }, function (err) {
|
||||||
if(err) throw err;
|
if(err) throw err;
|
||||||
});
|
});
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// Run 'gulp' to build everything at once
|
// Run 'gulp' to build everything at once
|
||||||
var tasks = [];
|
let tasks = [];
|
||||||
if (enabled.cleanup) tasks.push('cleanup');
|
if (enabled.cleanup) tasks.push('cleanup');
|
||||||
gulp.task('default', tasks.concat([
|
// gulp.task('default', gulp.parallel('styles', 'templates', 'scripts', 'scripts_tutti'));
|
||||||
|
|
||||||
|
gulp.task('default', gulp.parallel(tasks.concat([
|
||||||
'styles',
|
'styles',
|
||||||
'templates',
|
'templates',
|
||||||
'scripts',
|
'scripts',
|
||||||
'scripts_concat_tutti',
|
'scripts_concat_tutti',
|
||||||
'scripts_move_vendor',
|
'scripts_move_vendor',
|
||||||
]));
|
])));
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
"url": "git://git.blender.org/pillar.git"
|
"url": "git://git.blender.org/pillar.git"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"gulp": "^3.9.1",
|
"gulp": "^4.0.0",
|
||||||
"gulp-autoprefixer": "^6.0.0",
|
"gulp-autoprefixer": "^6.0.0",
|
||||||
"gulp-cached": "^1.1.1",
|
"gulp-cached": "^1.1.1",
|
||||||
"gulp-chmod": "^2.0.0",
|
"gulp-chmod": "^2.0.0",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user