Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Sencha Cmd: Подключение jQuery (https://javascript.ru/forum/extjs/62949-sencha-cmd-podklyuchenie-jquery.html)

khusamov 08.05.2016 20:24

Sencha Cmd: Подключение jQuery
 
Правильно я подключил 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".


Часовой пояс GMT +3, время: 11:12.