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('.')) ; };