coveo-search-ui
Version:
Coveo JavaScript Search Framework
55 lines (42 loc) • 2.31 kB
JavaScript
;
const gulp = require('gulp');
const shell = require('gulp-shell');
const eol = require('gulp-eol');
const rename = require('gulp-rename');
const event_stream = require('event-stream');
const { fileTypes } = require('./filetypes');
const { setNodeProdEnv } = require('./nodeEnv');
const prepareSass = gulp.series(fileTypes, pipeModalBoxFiles);
const executeWebpack = gulp.series(gulp.parallel(addEolDependencies, deprecatedDependencies, prepareSass), shell.task(['npx webpack']));
const compile = gulp.series(executeWebpack, gulp.parallel(duplicateCssFile, duplicateCssMapFile));
const compileTSOnly = shell.task(['npx webpack --config ./webpack.tsonly.config.js']);
const minimize = gulp.series(
gulp.parallel(addEolDependencies, setNodeProdEnv),
shell.task(['node --max_old_space_size=8192 node_modules/webpack/bin/webpack.js --env minimize'])
);
const analyze = gulp.series(
gulp.parallel(addEolDependencies, setNodeProdEnv),
shell.task(['node --max_old_space_size=8192 node_modules/webpack/bin/webpack.js --env minimize --env analyze'])
);
function pipeModalBoxFiles() {
return event_stream
.merge(gulp.src('./lib/modal-box/modalBox.css').pipe(rename('_ModalBox.scss')).pipe(gulp.dest('./bin/sass/')))
.pipe(event_stream.wait());
}
function deprecatedDependencies() {
return gulp.src('./src/Dependencies.js').pipe(rename('CoveoJsSearch.Dependencies.js')).pipe(gulp.dest('./bin/js/'));
}
// We duplicate css file to help on upgrade (deployments using the "NewDesign" file)
// This should help mitigate 404 on those files, and hopefully possible maintenance case(s).
function duplicateCssFile() {
return gulp.src('./bin/css/CoveoFullSearch.css').pipe(rename('CoveoFullSearchNewDesign.css')).pipe(gulp.dest('./bin/css'));
}
function duplicateCssMapFile() {
return gulp.src('./bin/css/CoveoFullSearch.css.map').pipe(rename('CoveulFullSearchNewDesign.css.map')).pipe(gulp.dest('./bin/css'));
}
// This cause an issue when dep are bundled together : the lack of EOL makes it so
// that part of the bundled code can be commented out or not valid
function addEolDependencies() {
return gulp.src('./node_modules/underscore/underscore-min.js').pipe(eol()).pipe(gulp.dest('./node_modules/underscore/'));
}
module.exports = { compile, compileTSOnly, minimize, analyze };