8 причин, чтобы любить
Browserify

#1 Локальные переменные

Прямо с первой строки, без отступов и оберток

var local = 'I don\'t leak into global';

И даже не начинай про обертки и IIFE

(function (window, document, angular,
           jQuery, whatever, undefined) {

  var local = 'I don\'t leak into global';

})(window, document, angular,
  jQuery, whatever);

#2 Понятный экспорт

Не нужно быть оракулом, чтобы видеть public API

// magic.js
exports.castSpell = function(spell) {
  document.querySelector('#wand').innerHTML = spell;
};

... в отличие от UMD

(function (root, factory) {
  if (typeof exports == 'object') {
    module.exports = factory(require('magic'));
  } else if (typeof define == 'function' && define.amd) {
    define(['magic'], function (magic) {
      return (root.returnExportsGlobal = factory(magic));
    });
  } else {
    root.returnExportsGlobal = factory(root.magic);
  }
}(this, function (magic) {
  magic.castSpell = function(spell) {
    document.querySelector('#wand').innerHTML = spell;
  };
}));

#3 Понятный импорт

Вместо тысячи слов

var magic = require('./magic');

magic.castSpell('Fireball');

Это масштабируется нормально

var _ = require('underscore')
  , EventEmitter = require('events').EventEmitter
  , Promise = require('promise')
  , utils = require('src/utils')
  , flux = require('flux')
  , UserStore = require('src/store/user')
  , ProjectStore = require('src/store/project');
  // ...

А это?

define('UsersList',
  [
    'underscore',
    'events',
    'Promise',
    'src/utils',
    'flux',
    'src/store/user',
    'srs/store/project'
  ],
  function(_, events, Promise, utils, flux, UserStore, ProjectStore) {
    // Можно выдохнуть
  }
);

#4 npm

В npm есть вообще всё.

Умеешь определять пол по отчеству?

require('petrovich')
  .detect_gender('Ильинична'); // 'female'

Ах да, npm — самый огромный репозиторий в мире

#5 Инструментарий

Бэкэнд не Node.js? — Не проблема.

В продакшн:

browserify main.js -o build.js

В разработке:

watchify main.js -o build.js

#6 ES6

Стрелочные функции, генераторы и классы —
уже сегодня.

Трансформы сделают всю магию:

browserify -t es6ify ...

И это будет работать в IE 9.

#7 Изоморфные приложения

Мечты сбываются: один и тот же код на клиенте
и на сервере*

* Только для supreme enlightened Node.js

#8 Крутые картинки

Ты мечтал их использовать, но у тебя не было повода.

Спасибо!