require('modules') in the browser

Component package manager
for building a better web.
«Модуль» — это популярная реализация паттерна, инкапсулирующего приватную информацию, состояние и структуру, используя замыкания. Это позволяет оборачивать публичные и приватные методы и переменные в модули, и предотвращать их попадание в глобальный контекст, где они могут конфликтовать с интерфейсами других разработчиков. Паттерн «модуль» возвращает только публичную часть API, оставляя всё остальное доступным только внутри замыканий.
- Паттерны для масштабируемых JavaScript-приложений, Эдди Османи
- Использование NPM модулей в браузере
- Поддержка process.nextTick(), ___dirname, ____filename
- Node Core Libraries
- Тестирование с testling-ci
Преимущества Component
- В одном модуле можно хранить скрипты, cтили, картинки и шаблоны
- Удобный механизм для создания скелета компонента
- Установка модулей с GitHub
- Поиск модулей прямо из командной строки
- Возможность организовать приватное хранилище кода
Плюсы использования модулей
1) Независимые куски кода
2) Чистая глобальная область видимости
3) Дерево зависимостей
4) Развязывание кода
5) Возможность покрытия Unit тестами
Оптимизация производительности с помощью модулей
"Классический пример"
Он же, но с закешированным файлом
Оптимизация производительности с помощью модулей
Ленивая загрузка
Оптимизация производительности с помощью модулей
Модульный подход
Оптимизация производительности с помощью модулей
Модульный подход с кешированнием


Почему Component?
1) Возможность создать свой репозиторий компонентов
2) Быстрая установка на проекты
3) Возможность контролировать / обновлять компоненты
4) Возможность хранить все assets нужные для модуля
5) Возможность делать не только JS модули, но и CSS/SCSS модули (можно сложить туда reset'ы, mixin'ы)
COMMON.JS
By Kirill Kaysarov
COMMON.JS
- 940