53 lines
1.4 KiB
JavaScript
Raw Normal View History

2020-02-20 14:38:25 -08:00
const path = require('path');
const { src, dest } = require('gulp');
const minify = require('gulp-minify');
const rev = require('gulp-rev');
const concat = require('gulp-concat');
const merge = require('merge-stream');
const asyncthrough = require('./lib/through');
const ROOT = path.dirname(__dirname);
const DEST = 'dist/js';
module.exports = exports = function sourceJS () {
return merge(
src([ 'js/*.js', 'js/_*.js' ]),
src([
require.resolve('jquery'),
require.resolve('magnific-popup'),
require.resolve('popper.js/dist/umd/popper.js'),
require.resolve('bootstrap/js/dist/util.js'),
require.resolve('bootstrap/js/dist/dropdown.js'),
'js/_*.js',
]).pipe(concat('global.js')),
).pipe(dest(DEST));
};
exports.prod = function sourceJSForProd () {
return exports()
.pipe(minify({
ext: { min: '.js' },
noSource: true,
}))
.pipe(dest(DEST))
.pipe(rev())
.pipe(dest(DEST))
.pipe(asyncthrough(async (stream, file) => {
// Change rev's original base path back to the public root so that it uses the full
// path as the original file name key in the manifest
var base = path.resolve(ROOT, 'dist');
file.revOrigBase = base;
file.base = base;
stream.push(file);
}))
.pipe(rev.manifest({
merge: true, // Merge with the existing manifest if one exists
}))
.pipe(dest('.'))
;
};