UNPKG

gulp-lazy-pipelines

Version:

gulp lazy pipelines for frontend development

77 lines (66 loc) 1.9 kB
const gulp = require('gulp'); const gutil = require('gulp-util'); const tap = require('gulp-tap'); const sourcemaps = require('gulp-sourcemaps'); const buffer = require('gulp-buffer'); const lazypipe = require('lazypipe'); const uglify = require('gulp-uglify'); const rename = require('gulp-rename'); const gif = require('gulp-if'); const browserify = require('browserify'); const stylus = require('gulp-stylus'); const postcss = require('gulp-postcss'); const autoprefixer = require('autoprefixer'); const pug = require('gulp-pug'); const concat = require('gulp-concat'); const babel = require('gulp-babel'); export function buildPipeline(newName, presets='es2015', plugins='') { presets = typeof(presets) === 'string' ? [presets] : presets; return lazypipe() .pipe(sourcemaps.init) .pipe(babel, { presets: presets, plugins: plugins }) .pipe(concat, newName) .pipe(sourcemaps.write, '.'); } export function bundlePipeline(newName, ugly) { let pipeline = lazypipe() .pipe(tap, function (file) { gutil.log('bundling ' + file.path); file.contents = browserify(file.path, {debug: true}).bundle(); }) .pipe(buffer) .pipe(sourcemaps.init, {loadMaps: true}); if (newName) { pipeline = lazypipe() .pipe(pipeline) .pipe(rename, newName); } pipeline = pipeline = lazypipe() .pipe(pipeline) .pipe(sourcemaps.write, './'); return pipeline; } export function stylusPipeline(params = {}, newName) { let pipeline = lazypipe() .pipe(sourcemaps.init) .pipe(stylus, params) .pipe(postcss, [autoprefixer()]); if (newName) { pipeline = lazypipe() .pipe(pipeline) .pipe(rename, newName); } pipeline = lazypipe() .pipe(pipeline) .pipe(sourcemaps.write, './'); return pipeline; } export function templatePipeline(params = {}) { return lazypipe() .pipe(sourcemaps.init) .pipe(pug, params) .pipe(sourcemaps.write, './'); }