我正在尝试在我的Sencha ExtJS应用程序中使用动态包加载。
我在我的工作空间(sencha generate package SR2000
)中创建了包,并将SR2000
添加到app.json中的uses
-Array:
"requires": [
"package-loader",
"font-awesome",
...
],
"uses": ["SR2000"],
在Application.js中,我添加了launch
的加载:
launch: function (profile) {
console.log('Current Config:', Base.config.Config.getConfig());
Ext.Package.load('SR2000');
Ext.Viewport.getController().onLaunch();
Ext.getBody().removeCls('launching');
this.callParent([profile]);
},
然后我用选项-uses
观察/构建应用程序:
sencha app watch -uses <build_profile>
在浏览器中加载应用程序时,我得到错误404
应用程序正在加载:http://localhost:1841/build/development/wolfitsmart/resources/SR2000/SR2000.js
,但包的构建输出如下:http://localhost:1841/build/development/wolfitsmart/<build_profile>/resources/SR2000/SR2000.js
我怎么能让包加载器在build_profile-Folder中查看,或者让构建把包放在resources-Folder中?
我将build_profile-Folder添加到app.json中的资源中,这没有帮助:
"resources": [
{
"path": "resources",
"output": "shared"
}
],
更改为:
"resources": [
{
"path": "resources",
"output": "shared"
},
{
"path": "${build.id}/resources"
}
],
构建和使用动态包的一些有用的说明。
sencha app build -dev -pac yourpackagename /// build development
sencha app build -pac yourpackagename // build release
sencha app watch -pac yourpackagename
if (Ext.Package.isLoaded('packagename')) {
// package is loaded
} else {
Ext.Package.load('packagename').then(function () {
// package is loaded
});
}