5. 5
Файлы и cat **/*.js > build.js
• Это быстро и просто
• Что плохого
– Собирается все без разбора
– Возможны конфликты имен переменных
– Результат плохо сжимается
– Нужно учитывать порядок
7. 7
Мне понадобились модули. Зачем?
• Разделение логических частей
• Управление импортом/экспортом
• Явные зависимости и их контроль
• Меньше конфликтов переменных
8. Модуль? – нет, не слышал!
Learning JavaScript
Design Patterns
http://clck.ru/8aLgX
25. 25
И еще AMD
• Приходится поддерживать AMD
– jQuery, underscore, backbone, …
– 2 версии с AMD и без
• Пытаются заразить Node.js
– node-requirejs
– в node и так есть модульная система
http://clck.ru/4b7dE
28. 28
Другие пути
• browserify
– CommonJS – хорошо
– слишком много от Node.js – плохо
• просто загрузчик
– headjs
– yepnopejs
29. 29
Из моего опыта
• Сегодня все собирается. Даже dev
• Читаемость кода очень важна
– Нужно исключить неявные конструкции
• Сборок бывает много
– dev, production, dev-ru, test-en_US
• Нужен контроль результата сборки
– Проверка целостности
– Подробная информация о сборке
34. 34
Профит
• Ненавязчивый формат
– Нет лишней писанины
– Единообразие вида модулей
• Обратная совместимость с Node.js
– Без плагинов, регистрации и SMS
• Оберткой модулей занимается сборщик
39. 39
{
"root": "../js",
"modules": {
"main": "main.js"
},
"depends": "*.lmd.json"
}
Операции над конфигами
3. Зависимости модулей
main.lmd.json хранит зависимости main.js
http://clck.ru/4b7sw
40. 40
Профит
• Минус – нужно писать конфиг
• JSON можно легко реиспользовать
• Количество конфигов сократилось
• Меньше писать сборочных скриптов
• Легче понять результат сборки