Вход

Просмотр полной версии : Sencha Cmd: Подключение jQuery


khusamov
08.05.2016, 20:24
Правильно я подключил jQuery?

app.json:

"js": [
{
"path": "${framework.dir}/build/ext-all-rtl-debug.js"
},
{
"path": "app.js",
"bundle": true
},
{
"path": "https://yastatic.net/jquery/2.2.3/jquery.min.js"
}
],

nohuhu
09.05.2016, 19:47
Не совсем:


"js": [{
"path": "https://yastatic.net/jquery/2.2.3/jquery.min.js",
"includeInBundle": true
}, {
"path": "app.js",
"bundle": true
}]


При такой конфигурации код jQuery всегда будет идти перед вашим приложением в app.js, и вы избежите потенциальных проблем с порядком инициализации.

khusamov
09.05.2016, 20:09
Это надо в корне делать или для production и develop ставить разные c min и без min?

nohuhu
09.05.2016, 21:07
Если вы не собираетесь отлаживать код jQuery, то можно добавить в корень - пускай всегда будет минифицированный скрипт.

khusamov
09.05.2016, 22:58
А для чего эти опции? Перевод особо не помог понять их смысл.

* // Set to true on one file to indicate that it should become the container
* // for the concatenated classes.
* //
* "bundle": false, // OPTIONAL
*
* // Set to true to include this file in the concatenated classes.
* //
* "includeInBundle": false, // OPTIONAL

nohuhu
10.05.2016, 03:16
Опция "bundle" означает, что данный скрипт будет контейнером для всех остальных, т.е. сборкой. Опция "includeInBundle" означает, что данный скрипт нужно включать в сборку. Если эта опция не указана, то скрипт будет загружаться динамически с указанного URL.

Сторонние библиотеки лучше всегда включать в сборку, чтобы потом не было головной боли с упавшим CDN, изменившимися URL, устаревшими версиями библиотек и прочими событиями вне вашего контроля.

khusamov
10.05.2016, 07:42
Не, так не годится. Я же написал, что перевод ничего не дал. А вы по сути просто перевели.

Что такое "сборка"? Что такое "контейнер"? Что значит "включить в сборку"?

.

nohuhu
11.05.2016, 20:23
Вот я долго думал, как на такие претензии отвечать, а потом понял, что вообще отвечать не хочу. Мне не нравится ваш тон и общая посылка, что я как будто обязан вам отвечать и всё разжёвывать. Ну так вот, не обязан. Мне за участие в этом форуме денег не платят, я здесь присутствую только по своей доброй воле и в своё личное время, которое нынче в дефиците.

Так что вот, пока вы публично не извинитесь, я вам больше помогать не буду.

khusamov
12.05.2016, 06:53
Тоже долго думал над своим постом. Хотел написать в шутливом тоне. А вышло вон как. Обиделись. Мы уже с вами давно переписываемся и у вас должно было появится представление об мне как человеке, который вот так просто не будет наезжать с необоснованными претензиями. Потому, прошу извинить за некорректный шутливый тон своего поста.

nohuhu
13.05.2016, 01:00
Спасибо, извинения приняты. Я тоже погорячился.

Возвращаясь к нашим баранам: сборка, она же свёрток (bundle), это файл, в который собирают весь JavaScript. Посмотрите на результат production build, там вы увидите index.html и один жирный файл app.js, в котором живёт всё.

Так вот опция "bundle" как раз и означает, что файл по данному пути будет тем самым паровозом, к которому будут цеплять всё остальное. Всё остальное это framework и прочие скрипты, помеченные как includeInBundle. Все нужные исходники из framework будут подключены автоматически перед началом файла bundle, а includeInBundle будут включены перед и после bundle в порядке, указанном в массиве "js".

khusamov
13.05.2016, 12:56
Я рад что все разъяснилось)
1) Выходит запись с bundle=true должна быть в одном экземпляре?
2) В общем не получается поработать с includeInBundle. Написал в другой ветке: http://javascript.ru/forum/extjs/62964-sencha-cmd-strannoe-povedenie-opcii-includeinbundle-true.html

kolka
13.05.2016, 12:58
nohuhu,
Спасибо за такой развернутый и абсолютно понятный ответ. Мне тоже не хватало понимания, как оказалось, достаточно простого описания.