- PVSM.RU - https://www.pvsm.ru -
Так сложилось, что в большинстве своих проектов я использую Require.js.
Более того, часто я пытаюсь поставить на путь истинный окружающих меня людей, всячески подталкивая их к использованию этой библиотеки.
Именно поэтому я очень часто сталкиваюсь с мифами, которые каждый раз приходится разрушать для каждого собеседника:
Это самое распространенное заблуждение. Динамическую подгрузку зависимостей можно и нужно использовать во время разработки. На продакшне же, все это добро будет собрано в один js файл с помощью r.js [1] и минифицировано с помощью uglify.js или ему подобным.
Работа requirejs на продакшне (без необходимости загружать зависимости дополнительными запросами) будет вовсе неощутимой.
Не нужно также забывать за возможность замены такого синтаксиса:
define(['moduleA', 'moduleB', 'moduleC'], function (moduleA, moduleB, moduleC) {
// use moduleA, moduleB and moduleC here
return {
// new module here
};
});
таким:
define(function (require) {
var moduleA = require('moduleA'),
moduleB = require('moduleB'),
moduleC = require('moduleC');
// use moduleA, moduleB and moduleC here
return {
// new module here
};
});
Черновик этого поста создавался очень давно, до нынешней популярности Node.js. Но теперь использование синтаксиса require.js в JavaScript, похоже, стало более привычным.
Думаю, многие уже давно для удобства завели себе сниппеты для использования конструкция require.js, что делает возможным в 2-3 клавиши создавать такие модули.
Автор: Leestex
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/60127
Ссылки в тексте:
[1] r.js: http://requirejs.org/docs/optimization.html
[2] Packages: http://requirejs.org/docs/api.html#packages
[3] Подгрузка темплейтов с помощью плагинов (напр. text): http://requirejs.org/docs/api.html#text
[4] Удобное управление версиями библиотек/кода: https://github.com/artyomtrityak/kievjs_requirejs/blob/master/slides/r15.png
[5] Множество полезных плагинов, таких как i18n: http://requirejs.org/docs/api.html#i18n
[6] Источник: http://habrahabr.ru/post/195286/
Нажмите здесь для печати.