Использование оптимизатора в requirejs для группы и загрузки файлов
-
27-10-2019 - |
Вопрос
Мы только начали использовать потребности в нашем проекте, и нам это нравится. В настоящее время мы просто используем его для управления нашими многочисленными плагинами jQuery, на которых работает сайт, поэтому едва ли царапает поверхность его потенциала ... но из -за времени, которые должны ждать.
У меня есть некоторые проблемы с получением оптимизатора, так как я хотел бы, чтобы это было, мне интересно, можно ли сказать мне, можно ли это сделать. Моя структура каталогов:
> /common/
> /common/*.js - common plugins used on most pages on the site
> /infrequent/
> /infrequent/infrequentModule.js
> /infrequent/ckeditor
> /infrequent/ckeditor/1000s.js
> /require.js
> /jquery.js
> /main.js - this file contains all scripts in common. It looks at the page and call the necessary plugins.
Оптимизация/строительство надежды:
- main.js будет содержать все общие сценарии. На большинстве страниц этот сценарий будет единственным загруженным (кроме требований.
- Main.js смотрит на страницу, если она видит, что ей нужен нечастый плагин/модуль, он загружает этот асинхрон. Таким образом, на редкой странице я могу загрузить require.js, main.js и upretentmodule.js.
Я пробовал различные методы в скрипте сборки, чтобы исключить и включить файлы, чтобы получить желаемые результаты, но безрезультатно. У кого -нибудь есть идеи или знает, возможно ли это, на самом деле, возможно?
Решение
Итак, я получил несколько отличных ответов на группу Google для require.js - http://groups.google.com/group/requirejs/browse_thread/thread/359b02473f4e707
Ниже приведен полезный ответ, который мне дал, что, я надеюсь, может помочь кому -то другому ...
Привет, я сейчас делаю это в одном из моих проектов, вот мой сборник.
paths: {
//load libs from cdn
"jqueryUI": "jqueryUI", //temp static file for build
"swfobject": "swfobject", //temp static file for build
"Templates": "../Templates/Settings"
},
modules: [{
name: "appName",
excludeShallow: ["jqueryUI", "swfobject", "Modules/
module.preferences"]
}
Затем в одном из моих модулей у меня требуется вызов для модулей/ модулей. Представления, которые я выполняю, когда мне это нужно:
function loadPreferences(){
require(["Modules/module.preferences"],function(){
//Execute some init code after the module has
loaded
})
}
}
Это достигает того, что вы описали, где мне потребовалось, и основной загрузки на загрузке страницы, затем Module.Preferences загружает асинхронность, когда мне это нужно. Надеюсь, это поможет, Джефф.