UNPKG

ima-gulp-tasks

Version:

Default gulp tasks for IMA.js applications.

75 lines (64 loc) 1.94 kB
const gulp = require('gulp'); const concat = require('gulp-concat'); const del = require('del'); const nano = require('gulp-cssnano'); const plumber = require('gulp-plumber'); const postCss = require('gulp-postcss'); const uglifyEs = require('gulp-uglify-es').default; exports.__requiresConfig = true; exports.default = gulpConfig => { let files = gulpConfig.files; let uglifyCompression = gulpConfig.uglifyCompression; function bundleJsApp() { if (!gulpConfig.legacyCompactMode) { return Promise.resolve(); } return gulp .src(files.bundle.js.src) .pipe(plumber()) .pipe(concat(files.bundle.js.name)) .pipe( uglifyEs({ mangle: true, compress: Object.assign({}, uglifyCompression, { ecma: 5 }) }) ) .pipe(plumber.stop()) .pipe(gulp.dest(files.bundle.js.dest)); } function bundleEsApp() { return gulp .src(files.bundle.es.src) .pipe(plumber()) .pipe(concat(files.bundle.es.name)) .pipe(uglifyEs({ mangle: true, compress: uglifyCompression })) .pipe(plumber.stop()) .pipe(gulp.dest(files.bundle.es.dest)); } function bundleJsServer() { let file = files.app.dest.server + files.app.name.server; return gulp.src(file).pipe(gulp.dest(files.app.dest.server)); } function bundleCss() { return gulp .src(files.bundle.css.src) .pipe(plumber()) .pipe(concat(files.bundle.css.name)) .pipe(nano()) .pipe(postCss(gulpConfig.files.bundle.postCssPlugins)) .pipe(plumber.stop()) .pipe(gulp.dest(files.bundle.css.dest)); } function bundleClean() { return del( files.bundle.css.src.concat(files.bundle.js.src, files.bundle.es.src) ); } return { 'bundle:js:app': bundleJsApp, 'bundle:es:app': bundleEsApp, 'bundle:js:server': bundleJsServer, 'bundle:css': bundleCss, 'bundle:clean': bundleClean }; };