1

我想知道这是否是因为我们没有这个应用程序结构:

MyApp
    /app
        /controller
        /model
        /store
        /view

但是我们有这个应用程序结构:

MyApp
    /app
        /feature1
            /controller
            /model
            /store
            /view
        /feature2
            /controller
            /model
            /store
            /view

这是一个示例定义:

Ext.define('base.model.Job', {

这是来自 app.js

Ext.application({
    name: 'AMC',
    appFolder: 'app',


    requires: [
        'base.model.Job',

我正在研究使用 Sencha Cmd 4.0.2.67。我使用 generate 生成了一个骨架应用程序,创建了一个工作区和一个包,并且 sencha 应用程序构建运行良好,没有错误或警告。

但是当我查看 /workspace/build/production/AMC/ 文件夹时,缩小的 app.js 只有 19 个 Ext.define,但我的应用程序至少有 250 个 Ext.define 用于我的所有课程。

我想当我在我的开发环境中定义 app.js 时,依赖关系会得到解决,所有模式代码都会被缩小并放入 app.js 生产中。

这是我的开发环境中的 app.js 的示例:

Ext.Loader.setConfig({
    enabled : true
});


Ext.application({
    name: 'AMC',
    appFolder: 'app',


    requires: [
        'atlas.model.Pool',
        'atlas.model.Volume',
        'base.model.Job',
        'atlas.model.Performance',
        'atlas.utilities.CommonUtil',
        'atlas.utilities.CommonVTypes'
    ],


    views: [
        'atlas.view.login.Login'
    ],


    controllers: [
        'atlas.wizard.impl.hanode.controller.WizardHaNodeController',
        'atlas.wizard.impl.agg.controller.WizardAggController',
        'atlas.wizard.impl.disk.controller.WizardDiskController',
        'atlas.wizard.impl.mem.controller.WizardMemController',
        'atlas.wizard.impl.ads.controller.WizardAdsController',


        'atlas.wizard.base.controller.WizardReviewController',
        'atlas.wizard.base.controller.WizardWindowController',
        'atlas.wizard.base.controller.WizardPanelController',
        'atlas.wizard.base.controller.WizardFormTypeTierController',
        'atlas.wizard.base.controller.WizardFormTypeOptimizeController',
        'atlas.wizard.base.controller.WizardFormTypeInMemoryController',
        'atlas.wizard.base.controller.WizardFormTypeMemoryPureController',
        'atlas.wizard.base.controller.WizardLookupDataStoreController',
        'atlas.wizard.base.controller.WizardLookupImportsController',
        'atlas.wizard.base.controller.WizardLookupHostDatastoreController',


        'atlas.controller.ha.HaNodeController',
        'atlas.controller.portlet.GraphiteController',
        'atlas.controller.setting.VcenterController',
        'atlas.controller.setting.SettingController',
        'atlas.controller.PerspectiveController',
        'atlas.controller.cluster.AssignVolumeToClusterController',
        'atlas.controller.cluster.AssignPoolToClusterController',
        'atlas.controller.login.LoginController',
        'atlas.controller.ha.DeleteHAConfigController',
        'atlas.controller.ha.CreateHAConfigController',
        'atlas.controller.pool.AddAggregatorToPoolController',
        'base.controller.HeaderLinkController',
        'atlas.wizard.base.controller.WizardOptionsController',
        'base.controller.task.TaskListController',
        'base.controller.TabPanelController',
        'atlas.controller.cloud.CloudGettingStartedController',
        'atlas.controller.cloud.CloudOverviewController',
        'atlas.controller.aggregator.AggregatorHostListController'
    ],


    models: [
        'atlas.model.Pool',
        'atlas.model.Volume',
        'base.model.Job',
        'atlas.model.Performance',
        'base.model.Task'
    ],


    stores: [
        'atlas.wizard.base.store.WizardHaConfigStore',
        'atlas.store.PerformancePoolTypeStore',
        'atlas.store.PerformanceVolumeTypeStore',
        'atlas.store.PerformanceChartTypeStore',
        'atlas.store.TimeRangeStore'
    ],


    init: function()
    {
        var me = this;
        me.setRestWebServiceUrl();


        delete Ext.tip.Tip.prototype.minWidth;


        // This statement is disabling browser default context menu when right-clicking in ExtJS.
        Ext.getBody().on("contextmenu", Ext.emptyFn, null, {preventDefault: true});
    },


    launch: function()
    {
        //Ext.create('atlas.view.login.LoginForm');
        Ext.create('atlas.view.login.Login');
        //Ext.create('atlas.view.Viewport');
    },


    onAddController : function(index, controller, key)
    {
        controller.init(this);
    },


    getPerspective: function()
    {
        return this.perspective;
    },


    getPerspectiveId: function()
    {
        return this.perspectiveId;
    },


    getPerspectiveController : function()
    {
        return this.getController('atlas.controller.PerspectiveController');
    }
});
4

0 回答 0