Raw File
browserify-optional.js
// simple script to optionally elide source-map-support (or other optional modules) when running browserify.

var stream = require("stream"),
    Transform = stream.Transform,
    resolve = require("browser-resolve");

var requirePattern = /require\s*\(\s*['"](source-map-support)['"]\s*\)/;
module.exports = function (file) {
    return new Transform({
        transform: function (data, encoding, cb) {
            var text = encoding === "buffer" ? data.toString("utf8") : data;
            this.push(new Buffer(text.replace(requirePattern, function (originalText, moduleName) {
                try {
                    resolve.sync(moduleName, { filename: file });
                    return originalText;
                }
                catch (e) {
                    return "(function () { throw new Error(\"module '" + moduleName + "' not found.\"); })()";
                }
            }), "utf8"));
            cb();
        }
    });
};
back to top