"use strict"; const Promise = require("bluebird"); const path = require("path"); const browserify = require("browserify"); const util = require("util"); const fs = require("fs"); const chalk = require("chalk"); let mkdirAsync = util.promisify(fs.mkdir); module.exports = function bundle({ options, staticPath, entryPaths }) { let targetBundlePath = staticPath(options.bundlePath); let targetFolder = path.dirname(targetBundlePath); let browserifyOptions = { debug: options.sourceMaps, ... options.browserify }; let browserifyInstance = browserify(browserifyOptions); browserifyInstance.add(entryPaths); return Promise.try(() => { return mkdirAsync(targetFolder, { recursive: true }); }).then(() => { browserifyInstance .bundle() .pipe(fs.createWriteStream(targetBundlePath)) .on("finish", () => { console.log(`${chalk.bold.green("Bundle generated:")} ${targetBundlePath}`); }); }); };