Я пытаюсь оптимизировать свой проект Require JS для одного файла. Я ходил по нескольким учебникам, но ни один из них не работает должным образом.Требуется оптимизация JS - r.js - как это сделать правильно?
У меня есть следующие файлы структуру:
scripts/
build/
r.js
build.js
common/
misc.js
slider.js
library/
jquery.min.js
jquery.colorbox.min.js
jquery.scrollTo.min.js
...
mobile/
app.js
catalogue.js
car-images.js
...
web/
app.js
catalogue.js
car-images.js
...
index.html
Мне нужно создать 2 файла web.app.js
и mobile.app.js
. После нескольких попыток мне удалось только уменьшить app.js
в каждой папке, но без его зависимостей.
Результат должен быть один-файлы, содержащие все содержимое common
, library
и web
/mobile
каталогов, в зависимости от app.js я пытаюсь скомпилировать.
Вот как app.js
выглядит (web
и mobile
похожи):
requirejs.config({
"paths": {
'jquery': [
'//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min',
'../library/jquery.min'
],
'colorbox': [
'//cdnjs.cloudflare.com/ajax/libs/jquery.colorbox/1.4.33/jquery.colorbox-min',
'../library/jquery.colorbox-min'
],
'colorbox-he': [
'//cdnjs.cloudflare.com/ajax/libs/jquery.colorbox/1.4.33/i18n/jquery.colorbox-he.min',
'../library/jquery.colorbox-he.min'
],
'scrollTo': [
'//cdnjs.cloudflare.com/ajax/libs/jquery-scrollTo/2.1.1/jquery.scrollTo.min',
'../library/jquery.scrollTo.min'
],
'misc': '../common/misc',
'slider': '../common/slider'
},
"map": {
'*': {
'colorbox': 'colorbox-he'
},
'colorbox-he': {
'colorbox': 'colorbox'
}
},
"shim": {
'scrollTo': {
'deps': ['jquery'],
'exports': 'jQuery.fn.scrollTo'
},
'colorbox': {
'deps': ['jquery'],
'exports': 'jQuery.fn.colorbox'
},
'colorbox-he': ['colorbox'],
'misc': ['jquery', 'scrollTo'],
'car-images': ['jquery', 'colorbox'],
}
});
if (typeof require_modules == 'object') {
require_modules.push('misc')
} else {
var require_modules = ['misc']
}
require(require_modules);
Вот конфиг используется:
({
baseUrl: "../web",
name: "app",
out: "app-built.js"
})
Любая идея, как это право? из-за нескольких файлов и запросов время загрузки довольно длинное.
Заранее благодарен!
Ваш вопрос должен включать в конфигурационный файл, который вы передаёте 'r.js'. – Louis
@Louis Да, вы правы. Я обновил ответ. они были довольно просты, поэтому я подумал, что это необязательно. –