Sencha Cmd 5.0.1 с выпуском Extjs 5.0.1

Я обновляю свои Extjs до 5.0.1 (с 5.0.0), а также Sencha Cmd до 5.0.1.231

Нет ошибок времени компиляции, но во время выполнения он не загружает приложение и выдает следующую ошибку

Uncaught TypeError: Cannot read property 'baseUrl' of undefined

некоторые другие пользователи имеют ту же проблему..

http://www.sencha.com/forum/showthread.php?289872-After-update-to-5.0.1&p=1059537

Это ошибка или мы делаем что-то другое?

Спасибо

1 ответ

Это похоже на ошибку, но я думаю, что Сенча стремится использовать микропогрузчик, а не просто включать файл app.js и css. Поэтому мой короткий ответ - оба!:)

Теперь длинный:

Я играл с настройкой приложения ExtJS, которое должно жить далеко от рута и в то же время быть доступным как в режиме разработки, так и в режиме производства (средах).

Установка app.json для приложения Sencha CMD, так что microloader.js для загрузки необходимых файлов js и css, оказалась сложной задачей.

Моя папка настроена следующим образом: (Обратите внимание, моя папка сборки находится вне папки приложения Sencha CMD - MyApp - только для того, чтобы иметь одинаковую глубину пути)

index.cfm
/far/away/from/web/root
    ....
    /build
        /resources
        app.js
        app.json
        microloader.js
        ...
    /MyApp
        /.sencha
        /ext
        app.json
        app.js
        bootstrap.js
        ....

MyApp / app.json

{
    /**
     * The application's namespace.
     */
    "name": "MyApp",

    /**
     * The relative path to the appliaction's markup file (html, jsp, asp, etc.)
     *
     * Below setting seems relevant for proper loading MyApp/bootstrap.js
     */
    "indexHtmlPath": "../../../../../index.cfm",

    ......

    "output": {
        "base": "${workspace.build.dir}",
        "page": {
            /**
             * Below is relative path from the build folder to the application markup file
             */
            "path": "../../../../../index.cfm",
            "enable": false
        },
        "microloader": {
            "path": "microloader.js",
            "embed": false,
            "enable": true
        },
        "manifest": {
            "path": "app.json",
            "embed": false,
            "enable": "${app.output.microloader.enable}"
        }
    },

    /**
     * Uniquely generated id for this application, used as prefix for localStorage keys.
     * Normally you should never change this value.
     */
    "id": "f6cd3e2b-6a0c-4359-a452-e07adda808ae"
}

Первоначально, чтобы использовать производственную сборку, загружался непосредственно файл /far/away/from/web/root/build/app.js, и он выдавал ту же ошибку:

Uncaught TypeError: Cannot read property 'baseUrl' of undefined 

Теперь, когда app.json настроен так, как указано выше, я могу выбрать в своем index.cfm загружать ли:

for production - /far/away/from/web/root/build/microloader.js
for development - /far/away/from/web/root/MyApp/bootstrap.js

Я надеюсь, что это помогает кому-то.

Ура, Пенчо

Другие вопросы по тегам