Поручите инструментам Sencha SDK связывать другие JS-файлы, указанные в приложении.формат JSON

мой app.json файл приложения Sencha touch 2 содержит.

"js": [
    {
        "path": "sdk/sencha-touch.js"
    },
    {"path": "js/mootools-1.2.5-core.js"}, // I want these files to be bundled too
    {"path": "js/mootools-1.2.5.1-more.js"}, // <----------+
    {"path": "js/soundmanager2-nodebug-jsmin.js"}, // <----+
           ...                                     // <----+ and there are more.
           ...

    {
        "path": "app.js",
        "bundle": true,  /* Indicates that all class dependencies are concatenated into this file when build */
        "update": "delta"
    },

теперь я вижу, когда я взываю sencha app build production он компилирует все классы sencha в гигантский . Но все мои другие классы просто сжаты для построения каталога. Они не сцеплены. как я могу включить их в app.js?

Ф. А. В.

  1. ваш файл json правильно написан, правильно?

    Да, app.json написано без какого-либо синтаксиса ошибка. Проект успешно строится на вызове sencha app build production

2 ответов


после просмотра исходного кода и разговора с разработчиками позади Cmd представляется, что в настоящее время невозможно.

однако, поскольку файл сборки написан на JavaScript, теоретически, не потребуется много, чтобы изменить его и добавить эту функциональность в Cmd.

вы можете найти файл сборки Sencha Touch в:

CMD-ROOT/plugins/touch/current/app-build.js

здесь CMD-ROOT расположение sencha command-что вы можете узнать, используя which sencha.

в моей системе (OSX) путь:

/Users/Robert/bin/Sencha/Cmd/3.0.0.250/plugins/touch/current/app-build.js

надеюсь, это поможет вам.

обновление

похоже, что после разговора с другим разработчиком Cmd это действительно возможно. Есть 2 шага, которые вам нужно сделать, чтобы это произошло:

1) Добавить skipFrameworkFile свойство в каждый ресурс JS, который вы хотите связать. Это говорит компилятору не копировать ресурс при построении приложение.

{
    "path": "resources/js/jquery.js",
    "skipFrameworkFile": true
},

    "path": "resources/js/jquery2.js",
    "skipFrameworkFile": true
}

2) требуется каждый из файлов в вашем app.js С помощью @require тег. Это говорит компилятору включить каждый из ваших файлов в ваше приложение.файл js.

//@require resources/js/jquery.js
//@require resources/js/jquery2.js

для SenchaCmd 3.2 решение rdougan не сработало для меня. Однако вместо использования:

'skipFrameworkFile: true

Я

'x-bootstrap': true

(глядя на исходный код SenchaCmd), и это сработало!

другие шаги такие же, как у rdougan

надеюсь, что это помогает. Ура!--3-->