它看起来像一个错误,但我认为 Sencha 正在推动使用微加载器,而不仅仅是包含 app.js 文件和 css 文件。所以我的简短回答是两者都有!:)
现在长一个:
我正在尝试设置一个 ExtJS 应用程序,该应用程序远离 webroot,同时在开发和生产模式(环境)中都可用。
设置Sencha CMD 应用程序的app.json ,让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
....
我的应用程序/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
我希望这可以帮助别人。
干杯,彭乔