Комментарии 23
Было бы интересно почитать про продакшн сборку всего этого хозяйства в один файл. А так же нужно ли в этот файл включать код шаблонов, собирать их в отдельный файл или вобще оставить их подкачиваться по одному при каждом вызове. Best practices для продакшена вобщем.
+3
У require.js есть свой инструмент для минификации и склеивания файлов. Тут же на хабре было несколько статей по этому поводу. С зависимостями только потрахаться возможно придётся, особенно если подключается много разных jquery плагинов.
0
grunt. Также с ним вы можете сделать другие задачи, например, минификация css/html, перемещение файлов, переименования для предотвращения кэширования, base-64 кодирование изображений, т.д.
0
Это все понятно. И грантом и r.js я пользуюсь. Я имел в виду информацию о сборке так что бы это не стыдно было в продакшен вылить. Уверен что есть куча ньюансов.
0
Да, действительно есть куча нюансов, и в каждом проекте они свои. Если есть конкретные вопросы, можно обсудить.
0
В частности выше я спрашивал про шаблоны. Стоит ли их кидать в общий файл с js кодом, при условии что общий код для всего сайта весит около 1Мб, может немного меньше.
0
ох, все здесь от проекта зависит. По-моему, количество сборочных файлов должно равняться количеству single-page, даже если там есть дублирующие части.
Хорошее обсуждение этого момента есть тут
Хорошее обсуждение этого момента есть тут
0
Для шаблонов использую require.text (http://requirejs.org/docs/download.html#plugins). С сборщиком правда не игрался — не зачем это было.
0
Я обязательно изучу этот вопрос и опубликую результаты в следующем посте.
+1
бекбон можно в shim не писать, щас бекбон и андерскор amd'шный
0
Есть ведь реализация ToDo на backbone+require.js
todomvc.com/dependency-examples/backbone_require/
todomvc.com/dependency-examples/backbone_require/
+1
НЛО прилетело и опубликовало эту надпись здесь
Я данную связку реализовал проще, + минификация и объединением в один файл, отдельный файл конфиг роутера и шаблонизатор handlebars(сейчас пробою basis-templates.js). Постараюсь в скором времени выложить на суд.
Сложно читаемый код получается у автора( 2 исходник).
Сложно читаемый код получается у автора( 2 исходник).
0
Статья про базовое использование RequireJS пропитана болью…
Даже если не рассматривать системы сборки (make, grunt, gulp), следующая строчка намного проще и легче для понимания чем всё что описано в статье:
Что происходит:
1. Собираем в нужном порядке библиотеки
2. Там где порядок скриптов не важен, можем воспользоваться app/*.js
3. Минифициреум js
4. Записываем в один файлик
Даже если не рассматривать системы сборки (make, grunt, gulp), следующая строчка намного проще и легче для понимания чем всё что описано в статье:
$ cat lib/jquery.js lib/underscore.js lib/backbone.js app/*.js | uglifyjs > main.js
Что происходит:
1. Собираем в нужном порядке библиотеки
2. Там где порядок скриптов не важен, можем воспользоваться app/*.js
3. Минифициреум js
4. Записываем в один файлик
+1
Статья не о том как собрать все файлы в нужном порядке в один и затем минифицировать его. Понятно что на продакшне это будет один файл (хотя для больших приложений асинхронную загрузку никто не отменял). Вы пробовали подключать пару десятков файлов через тег
<script>
и разбираться потом в этом хозяйстве на деве. Для меня именно подключение файлов модулей во время разработки стало гораздо удобнее при использовании RequireJs.0
RequireJS нужна не только для склеивания скриптов в один файл. Вот что было важно для меня:
— Чёткое указание в начале каждого модуля, от чего именно зависит конкретно этот модуль. Очень полезно при поддержке и рефакторинге, а также для ситуаций, когда один модуль используется в разных проектах (типа своей библиотеки).
— Избавление от зависимости от глобальных определений библиотек. Помимо хорошей организации кода, это позволяет, например, использовать свою собственную версию jQuery и избежать конфликтов.
— Чёткое указание в начале каждого модуля, от чего именно зависит конкретно этот модуль. Очень полезно при поддержке и рефакторинге, а также для ситуаций, когда один модуль используется в разных проектах (типа своей библиотеки).
— Избавление от зависимости от глобальных определений библиотек. Помимо хорошей организации кода, это позволяет, например, использовать свою собственную версию jQuery и избежать конфликтов.
0
Один из тех случае, когда читать дольше, чем делать :)
Вообще, на оф. сайте очень неплохое руководство «getting started».
Но человек написал свою первую статью, и вполне себе годную. Не будем об этом забывать.
Вообще, на оф. сайте очень неплохое руководство «getting started».
Но человек написал свою первую статью, и вполне себе годную. Не будем об этом забывать.
+1
getting started там понятный, но всё хорошо, пока имеешь дело с модулями. Автор затронул тему адаптации не-модульного кода, это более сложная вещь.
0
Вы имеете ввиду шимы? Про них так же много информации
+1
github.com/jrburke/almond
Для browserify тоже есть адаптер «глобальных модулей». Вот пример browserify-shim.
A minimal AMD API implementation for use after optimized builds
Для browserify тоже есть адаптер «глобальных модулей». Вот пример browserify-shim.
0
requirejs.rar
Файл был удалён.
Причина удаления: Файл был утерян вследствие программного сбоя. Сожалеем об этом. см. forum.my-files.ru/t491-topic
Файл был удалён.
Причина удаления: Файл был утерян вследствие программного сбоя. Сожалеем об этом. см. forum.my-files.ru/t491-topic
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Кто бы смог мне подсказать, как require подключать