011_Sencha Cmd中的工作空间

Sencha Cmd中的工作空间

本指南介绍了Sencha Cmd的工作区。工作区被设计用来支持在多个应用程序间共享框架、代码、样式和资源。

先决条件

在继续深入之前,推荐阅读以下指南:

工作空间是什么?

构建大型应用程序的过程与构建单页面应用程序的过程相同。
一旦应用程序扩展到需要多个页面,就会出现一些常见问题:

  • 使用Sencha框架的通用副本(Ext JS和/或Sencha Touch)。
  • 使用跨页面通用的代码。
  • 共享或第三方包。
    为了支持这些,Sencha Cmd定义了“工作区(Workspace)”的概念。
    工作空间就是一个文件夹,它最终包含一个或多个页面、框架、包和其他共享代码或文件。
    工作空间根文件夹的位置,应该选择在满足这些需求,以及您的源代码控制需求的地方。
    任何在工作空间文件夹的子文件夹中创建的应用程序/页面,不管它们的深度如何,都被认为是工作空间的成员。

虽然不是必需的,但通常情况下,工作区文件夹是源码控制存储库中的根文件夹。

在您的工作空间中,您的页面的具体组织形式对于Sencha Cmd来说并不重要。
但是,为了简单起见,本指南中的示例将所有页面创建为工作空间的直接子文件夹。

注意术语。
“应用程序(application)”这个术语可能会让人感到困惑,因为它在不同的组织结构中是重载的,并且具有不同的规模。
对于Sencha框架,“应用程序”是一个web页面。
通常,这些应用程序调用Ext.application()在页面加载中启动适当的代码。
如果一个项目需要多个页面,那么通常情况下,整个页面集合被称为“应用程序”。
为了这些指南,我们将使用Sencha框架里的概念来理解一个应用程序,将它理解为一个web页面。

生成一个工作区

要生成工作空间,请使用以下命令:
sencha generate workspace /path/to/workspace
这将在指定的文件夹中创建下列结构。

workspace.json          # The JSON descriptor for the workspace.
.sencha/                # Sencha-specific files (e.g. configuration)
  workspace/          # Workspace-specific content (see below)
    sencha.cfg      # Configuration file for Sencha Cmd
    plugin.xml      # Plugin for Sencha Cmd

配置

配置类似于应用程序的配置。
“app.json”文件保存了单个应用程序的配置,而“workspace.json“包含工作空间中所有应用程序的配置属性。

框架的位置

Sencha Ext JS或Sencha Touch的位置(例如“SDK”或“framework”)作为工作空间的配置属性存储在配置文件中。
这允许多个页面共享这个配置。
不同的团队会对这些位置有不同的偏好,以及Sencha SDK是否存储在它们的源代码控制系统中。
下面讨论的设置使您能够控制Sencha SDK在您的工作空间中的位置。

默认情况下,工作区包含Sencha Ext JS和Sencha Touch两种SDK。
这些属性的设置在“.sencha/workspace/sencha.cfg”文件中的如下配置项中:

ext.dir=${workspace.dir}/ext
touch.dir=${workspace.dir}/touch

workspace.dir属性的值由Sencha Cmd确定,并根据需要扩展。
换句话说,默认情况下,工作区内含有它所包含的应用程序所使用的SDK的副本。

应用程序在他们的“app.json”文件中通过framework属性间接引用了他们的框架:

"framework": "ext"   

生成页面

一旦您拥有了一个工作区,生成页面(“应用程序(apps)”)就可以像以前那样做了,但是使用工作空间中的“ext”文件夹而非sdk目录:

cd apps
sencha -sdk ../ext generate app NewExtApp new-app

另外,–ext开关可用于从工作空间中选择“ext”框架,而不必担心它的路径:

cd apps
sencha generate app --ext NewExtApp new-app

因为这些生成的页面的目标在工作区中,所以会创建下面的结构(这与单页应用程序稍有不同):

workspace.json              # The JSON descriptor for the workspace
.sencha/                    # Sencha-specific files (e.g. configuration)
    workspace/              # Workspace-specific content (see below)
        sencha.cfg          # Workspace's configuration file for Sencha Cmd
        plugin.xml          # Workspace plugin for Sencha Cmd

ext/                        # A copy of the Ext JS SDK
    ...

touch/                      # A copy of the Sencha Touch SDK
    ...

extApp/
    .sencha/                # Sencha-specific files (e.g. configuration)
        app/                # Application-specific content
            sencha.cfg      # Application's configuration file for Sencha Cmd
    app.json                # The JSON descriptor for the application

touchApp/
    .sencha/                # Sencha-specific files (e.g. configuration)
        app/                # Application-specific content
            sencha.cfg      # Configuration file for Sencha Cmd
    app.json                # The JSON descriptor for the application

build/                      # The folder where build output is placed.
    production/             # Build output for production
        touchApp/
        extApp/
    testing/                # Build output for testing
        touchApp/
        extApp/

要生成更多的页面,请重复上述命令。

构建应用程序

构建应用程序的过程与一个或多个应用程序没有什么不同。
将工作目录切换到应用程序的根目录并运行:

sencha app build
为了提高效率,您可以为这个过程创建一个脚本。

Sencha Cmd提供了一个强大的包管理子系统,可以用来下载和集成JavaScript、样式和资源包到您的应用程序中。

workspace.json      # The JSON descriptor for the workspace
  packages/       # Container folder for shared Cmd packages
    local/      # Folder for packages generated in this workspace
    remote/     # Folder for packages downloaded into the workspace     

通常,“packages/remote”文件夹会被源代码控制系统所忽略,因为这些包总是可以从包存储库中再次下载和提取。

注意:在以前的版本中,所有的包都被放置在“packages”文件夹中。
这种分离虽然在大多数情况下很有帮助,但也可以在“workspace.json”中进行更改。

下一个步骤

在继续深入之前,推荐阅读以下指南:

猜你喜欢

转载自blog.csdn.net/zhaojianrun/article/details/79670476
011