Browserifyдоставка JS
М.В. Бакулин 1/17
быстро, дёшево, надёжно
Традиционный способ добавления JS 2/17
© http://www.technology-ebay.de/the-teams/mobile-de/blog/packing-the-web-like-a-boss.html
Недостаток #1: порядок имеет значение
Зависимости 3/17
Недостаток #2: зависимости плагинов
vlager.edu.ru:
Область видимости 4/17
Недостаток #3: область видимости (scope)
Немедленно вызываемые функции (Immediately-Invoked Function Expression) — IIFE
Передача параметров в немедленно вызываемую функцию
“Поднятие” (hoisting)
Совет эксперта:
Шаг вперёд: шаблон модуль 5/17
Суть этого паттерна заключается с создании локальной
области видимости, в которой определяются локальные,
«приватные» переменные и функции. Сама же
немедленно вызываемая функция возращает объект с
методами, использующими приватные переменные и
функции.
Способ получше - AMD модули 6/17
Самая распространённая реализация — RequireJS
Асинхронная загрузка
Как бы сделал Node.js - Browserify 7/17
— пакетный менеджер node.js
● Модули имеют своё пространство имён (namespace)
— быстро растущее собрание стандартов JS для разработки в областях, выходящих за рамки
традиционного использования внутри браузера
● Согласно CommonJS модули определяются присваиванием
объекта к module.exports
Доставка JS при помощи Browserify 8/17
https://nodejs.org/api/modules.html#modules_file_modules
Browserify и Watchify 9/17
Кто поможет автоматизировать всё на свете?
Это команда считывает ваш main.js и
пишет его содержимое в bundle.js
(разумеется, включая пакетные
зависимости).
Но! Каждый раз жать комманду в консоли?
Watchify поможет!
Gulp <3 Browserify 10/17
Простой вариант
Добавим “мяска”
Запуск
Browserify vs RequireJS
11/17
Недостатки:
● Визуально более громоздкий синтаксис
● Не лучшее решение для бекэнда
● Плохо разрешает циклические ссылки
● Lazy load делать сложнее
● Нужен nodeJS
● Не все фронтенд библиотеки есть в npm
Bower - пакентный менеджер фронтэнда
12/17
Установка
Поиск
Проверка актуальных версий пакетов
Мы освоили новый модный
инструмент для фронтэнда!
13/17
но...
Это уже устарело
14/17
15/17
Передовая: webpack и модули ES6
Смесь CommonJs и AMD (webpack)
ES6 модуль
Вызов ES6 модуля
16/17
Спасибо
17/17

More Related Content

PDF
Svyatoslav Login "How to test authentication and authorization for security"
PDF
"Web Vitals monitoring & optimizations", Erik Himiranov
PDF
Вадим Козлов, Илья Казначеев - Selenium через SAP
PDF
131 - Spring. Переход между страницами
PDF
130 - Spring WebFlow. Создание проекта
PPTX
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
PDF
66 - Spring. Spring и JSF
PPTX
Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"
Svyatoslav Login "How to test authentication and authorization for security"
"Web Vitals monitoring & optimizations", Erik Himiranov
Вадим Козлов, Илья Казначеев - Selenium через SAP
131 - Spring. Переход между страницами
130 - Spring WebFlow. Создание проекта
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
66 - Spring. Spring и JSF
Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"

Similar to Browerify (20)

PPT
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
PPT
Воюем за ресурсы (ZFConf2011)
PDF
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
PPTX
Как написать XAML-приложение без Message Bus
PPTX
Backbone lesson 1
PDF
Чуть сложнее чем Singleton: аннотации, IOC, АОП
PDF
Phalcon. Что нового?
PDF
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
PDF
Jiramania презентации @augspb
PDF
Continuous Delivery with Jenkins: Lessons Learned
PPTX
Обеспечение качества: Практические советы
PDF
Frontend: Путешествие в мир модульных загрузчиков
PPTX
Эволюция BackDoor.Flashback
PDF
Meet Magento Belarus 2015: Denis Bosak
PPT
Yulia tsuba
PDF
IT-инфраструктура. FAQ для разработчика
PDF
Телепортация MODX - MODX Meetup Minsk
PPTX
Как быть с большими сайтами на Word press
PPTX
Метапрограммирование интерфейсов в ASP.NET MVC Framework
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
Воюем за ресурсы (ZFConf2011)
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
Как написать XAML-приложение без Message Bus
Backbone lesson 1
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Phalcon. Что нового?
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Jiramania презентации @augspb
Continuous Delivery with Jenkins: Lessons Learned
Обеспечение качества: Практические советы
Frontend: Путешествие в мир модульных загрузчиков
Эволюция BackDoor.Flashback
Meet Magento Belarus 2015: Denis Bosak
Yulia tsuba
IT-инфраструктура. FAQ для разработчика
Телепортация MODX - MODX Meetup Minsk
Как быть с большими сайтами на Word press
Метапрограммирование интерфейсов в ASP.NET MVC Framework
Ad

Browerify

  • 1. Browserifyдоставка JS М.В. Бакулин 1/17 быстро, дёшево, надёжно
  • 2. Традиционный способ добавления JS 2/17 © http://www.technology-ebay.de/the-teams/mobile-de/blog/packing-the-web-like-a-boss.html Недостаток #1: порядок имеет значение
  • 3. Зависимости 3/17 Недостаток #2: зависимости плагинов vlager.edu.ru:
  • 4. Область видимости 4/17 Недостаток #3: область видимости (scope) Немедленно вызываемые функции (Immediately-Invoked Function Expression) — IIFE Передача параметров в немедленно вызываемую функцию “Поднятие” (hoisting) Совет эксперта:
  • 5. Шаг вперёд: шаблон модуль 5/17 Суть этого паттерна заключается с создании локальной области видимости, в которой определяются локальные, «приватные» переменные и функции. Сама же немедленно вызываемая функция возращает объект с методами, использующими приватные переменные и функции.
  • 6. Способ получше - AMD модули 6/17 Самая распространённая реализация — RequireJS Асинхронная загрузка
  • 7. Как бы сделал Node.js - Browserify 7/17 — пакетный менеджер node.js ● Модули имеют своё пространство имён (namespace) — быстро растущее собрание стандартов JS для разработки в областях, выходящих за рамки традиционного использования внутри браузера ● Согласно CommonJS модули определяются присваиванием объекта к module.exports
  • 8. Доставка JS при помощи Browserify 8/17 https://nodejs.org/api/modules.html#modules_file_modules
  • 9. Browserify и Watchify 9/17 Кто поможет автоматизировать всё на свете? Это команда считывает ваш main.js и пишет его содержимое в bundle.js (разумеется, включая пакетные зависимости). Но! Каждый раз жать комманду в консоли? Watchify поможет!
  • 10. Gulp <3 Browserify 10/17 Простой вариант Добавим “мяска” Запуск
  • 11. Browserify vs RequireJS 11/17 Недостатки: ● Визуально более громоздкий синтаксис ● Не лучшее решение для бекэнда ● Плохо разрешает циклические ссылки ● Lazy load делать сложнее ● Нужен nodeJS ● Не все фронтенд библиотеки есть в npm
  • 12. Bower - пакентный менеджер фронтэнда 12/17 Установка Поиск Проверка актуальных версий пакетов
  • 13. Мы освоили новый модный инструмент для фронтэнда! 13/17 но...
  • 15. 15/17
  • 16. Передовая: webpack и модули ES6 Смесь CommonJs и AMD (webpack) ES6 модуль Вызов ES6 модуля 16/17