From 58a9586ef63b8fcdcd9fbf8655e90a6bfa68d6df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Mon, 13 Nov 2017 21:49:42 +0100 Subject: [PATCH] add method to apply tinyify to a separate browserify pipeline --- index.js | 51 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 39 insertions(+), 12 deletions(-) diff --git a/index.js b/index.js index 52da613..d7b1e6f 100644 --- a/index.js +++ b/index.js @@ -1,17 +1,34 @@ var packFlat = require('browser-pack-flat/plugin') +var packFlatStream = require('browser-pack-flat') var commonShake = require('common-shakeify') var unassertify = require('unassertify') var uglify = require('minify-stream') var envify = require('envify/custom') var uglifyify = require('uglifyify') +function makeUglifyOptions (debug) { + var uglifyOpts = { + output: { + ascii_only: true + }, + mangle: { + safari10: true + } + } + if (!debug) { + uglifyOpts.sourceMap = false + } + return uglifyOpts +} + module.exports = function (b, opts) { if (typeof b !== 'object') { throw new Error('tinyify: must be used as a plugin, not a transform') } opts = Object.assign({ - flat: true + flat: true, + env: {} }, opts) var env = Object.assign({ @@ -42,16 +59,26 @@ module.exports = function (b, opts) { b.plugin(commonShake) // Minify the final output. - var uglifyOpts = { - output: { - ascii_only: true - }, - mangle: { - safari10: true - } - } - if (!b._options.debug) { - uglifyOpts.sourceMap = false - } + var uglifyOpts = makeUglifyOptions(b._options.debug) b.pipeline.get('pack').push(uglify(uglifyOpts)) } + +module.exports.applyToPipeline = function applyToPipeline (pipeline, opts) { + opts = Object.assign({ + flat: true, + debug: false, + basedir: process.cwd() + }, opts) + + if (opts.flat) { + pipeline.get('pack').splice(0, 1, packFlatStream({ + raw: true, + debug: opts.debug, + basedir: opts.basedir + })) + } + + // Minify the final output. + var uglifyOpts = makeUglifyOptions(opts.debug) + pipeline.get('pack').push(uglify(uglifyOpts)) +}