All Downloads are FREE. Search and download functionalities are using the official Maven repository.

smaller.browserify.0.8.8.source-code.browserify.js Maven / Gradle / Ivy

The newest version!
var browserify = require('browserify');
var fs = require('fs');
var path = require('path');
var through = require('through');
var convert = require('convert-source-map');
var mkdirp = require('mkdirp');

var browserResolve = require('browser-resolve');

module.exports = function(command, done) {
  if (!command.file) { 
    throw new Error("No input file specified");
  }
  process.chdir(command.indir);
  var withSourceMaps = command.options['source-maps'] == 'true' ? true : false;
  var abs = path.join(command.indir, command.file);
  var min = '';
  
  var aliases = !!command.options['aliases'] ? command.options['aliases'] : [];
  console.log('aliases: ' + aliases);
  var transforms = !!command.options['transforms'] ? command.options['transforms'] : [];
  console.log('transforms: ' + transforms);
  
  console.log('Processing ' + abs);
  var b = browserify({
      resolve: function resolve(id, opts, cb) {
        if (id.indexOf(command.indir) === -1 && id[0] == '/') {
          id = path.join(command.indir, id);
        }
        return browserResolve(id, opts, cb);
      }
    });
  transforms.forEach(function(transform) { b.transform(require(transform)); });
  b.add(abs);
  
  for (var alias in aliases) {
    if (aliases.hasOwnProperty(alias)) {
      b.require(alias, {expose: aliases[alias]})
    }
  }
  
  b.bundle({ debug: withSourceMaps }).pipe(through(
      function(data) { min += data; }, 
      function() {
        if (withSourceMaps) {
          var sourceMap = convert.fromSource(min);
          sourceMap.setProperty('sources', sourceMap.getProperty('sources').map(
            function(source) { return path.relative(command.indir, source); }));
          min = convert.removeComments(min);
          min += '\n' + sourceMap.toComment() + '\n';
        }
        fs.writeFile(path.join(command.outdir, 'output.js'), min, function(e) {
          if (e) {
            console.log(e);
            done();
          } else {
            console.log('Written result to ' + path.join(command.outdir, 'output.js'));
            done('output.js');
          }
        });
      }));
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy