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
Я надеюсь, что это помогает кому-то.
Ура, Пенчо