ExtJS:动态包加载和构建配置文件



我正在尝试在我的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
});
}

最新更新