Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Sencha Cmd: Странное поведение опции "includeInBundle": true (https://javascript.ru/forum/extjs/62964-sencha-cmd-strannoe-povedenie-opcii-includeinbundle-true.html)

khusamov 10.05.2016 00:20

Sencha Cmd: Странное поведение опции "includeInBundle": true
 
Сделал такое подключение сторонних библиотек:

"js": [{
            "path": "${framework.dir}/build/ext-all-rtl-debug.js"
        }, {
            "path": "https://yastatic.net/jquery/2.2.3/jquery.min.js",
            "includeInBundle": true
        }, {
            "path": "https://github.com/lindell/JsBarcode/releases/download/v3.0.3/JsBarcode.min.js",
            "includeInBundle": true
        }, {
            "path": "app.js",
            "bundle": true
    }],


и получил такую вот ошибку:

bootstrap.js:1565

GET https://github.com/lindell/JsBarcode...=1462828720180 404 (Not Found)


Опция "includeInBundle": true слепила оба URL в кашу!
Как так?

nohuhu 10.05.2016 03:35

А что в index.html значится?

khusamov 10.05.2016 07:46

Там без изменений:

<!DOCTYPE HTML>
<html manifest="">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

    <title>Element</title>

    <!-- The line below must be kept intact for Sencha Cmd to build your application -->
    <script id="microloader" data-app="4640a3ba-2b53-496d-87a6-9f276baed1c7" type="text/javascript" src="bootstrap.js"></script>

</head>
<body></body>
</html>


И еще, компиляция по команде sencha app watch проходит почему-то два раза, после сохранения app.json. Второй раз запускается по этой причине:
Цитата:

Detected change to C:\@repositories\element\build\temp\development\El ement\sencha-compiler\app\full-page-master-bundle.js

nohuhu 18.05.2016 21:49

Пардон, как-то упустил эту ветку из вида.

Зачем у вас "${framework.dir}/build/ext-all-rtl-debug.js" включено в начале массива "js"? Исходники Ext должны собираться в app.js. Можно также попробовать добавить опцию "remote": true к каждому пути с https. К сожалению, это не моя область и я не знаю точно, как механизм сборки в Cmd работает, поэтому приходится гадать.

Командирщики нынче страшно занятые, до них не достучаться. :(

khusamov 19.05.2016 13:51

Цитата:

Зачем у вас "${framework.dir}/build/ext-all-rtl-debug.js" включено в начале массива "js"?
Так вы же сами сказали что его надо впереди всех. Или я что путаю?..

Надо будет тогда ветку в оф. форум запульнуть. Что-то у них в этом месте нечисто.

nohuhu 19.05.2016 22:26

Нет, в массиве "js" должны быть все сторонние скрипты и "bundle". В bundle автоматически собираются все нужные классы Ext JS, поскольку в этом смысл bundle и есть. Специально указывать путь к полной сборке ext-all не просто избыточно, но и вредно: получите дубликацию кода.

siber-biber 20.05.2016 07:32

вы очевидно не в курсе, но sencha cmd сама добавляет вот это в раздел "js" при генерации application:
// Remove this entry to individually load sources from the framework.
            {
                "path": "${framework.dir}/build/ext-all-rtl-debug.js"
            },

khusamov 20.05.2016 16:11

ну да, CMD действительно сам вставил эту строку.


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