【问题标题】:What is the recommended SVN repository structure for ExtJS MVC applications?ExtJS MVC 应用程序推荐的 SVN 存储库结构是什么?
【发布时间】:2013-07-08 02:32:42
【问题描述】:

阅读更多关于 Sencha Cmd 和使用 ExtJS 4 构建 MVC 应用程序后,我看到 ExtJS 4 应用程序的结构如下所示。同一个 [包] 中的 [应用程序] 可以共享相同的 SASS(语法上很棒的样式表)主题,并且多个 [应用程序] 可以放在同一个 [包] 中。

使用“sencha generate workspace”命令创建工作空间时的文件夹结构:

\[workspace]\.sencha\
\[workspace]\packages\
\[workspace]\ext\

使用“sencha generate app”命令创建应用时的文件夹结构:

\[workspace]\[application]\.sencha\
\[workspace]\[application]\app\
\[workspace]\[application]\data\
\[workspace]\[application]\resources\
\[workspace]\[application]\sass\
\[workspace]\[application]\app\models\
\[workspace]\[application]\app\views\
\[workspace]\[application]\app\controllers\
\[workspace]\[application]\app\stores\

使用“sencha app build”命令构建应用时的文件夹结构:

\[workspace]\[build]\[application]\[production]\.sencha\
\[workspace]\[build]\[application]\[production]\app\
\[workspace]\[build]\[application]\[production]\data\
\[workspace]\[build]\[application]\[production]\resources\
\[workspace]\[build]\[application]\[production]\sass\
\[workspace]\[build]\[application]\[production]\app\models\
\[workspace]\[build]\[application]\[production]\app\views\
\[workspace]\[build]\[application]\[production]\app\controllers\
\[workspace]\[build]\[application]\[production]\app\stores\

我只在 Sencha Cmd 中学习了几个命令,但如果我在 SVN 中重构我的源代码,我想确保这些命令(以及我学习的新命令)仍然有效。

通常我将给定应用程序的根目录保存在“主干”文件夹下方。这样,如果我创建一个分支,我可以将所有东西都扔到分支中而不会错过任何东西。现在 Sencha 在路径中引入了一个额外的文件夹(即 [package] 文件夹),“trunk”文件夹应该在哪里引用 [application] 或 [package]?

否则,我想知道是否可以为 Sencha Cmd 设置配置,以便使用 SASS 进行主题化仍然有效,部署仍然有效,SVN 中的分支仍然有效,其他命令仍然有效。

【问题讨论】:

    标签: svn iis extjs sencha-touch


    【解决方案1】:

    这个答案可能有争议,但经过大量的故障排除和反复试验,它对我来说最有意义。

    如果在 IIS 上运行 ExtJS 4,并且您正在使用 Sencha Cmd 和 Sencha Architect IDE(用于样板代码),我发现这种结构效果最好,因此您不必更改各种命令的配置.这种格式的变量 ${variable} 需要在 {workspace}\.sencha 文件夹和 {app}\.sencha 文件夹下进行更改以解决这些差异,但我选择了最简单的选项,所以我运行未来的问题更少。创建新应用时,需要将“ext-4.2”文件夹放在“trunk”、“branches”和“tags”临时驻留的同一文件夹中,直到使用“sencha generate workspace..”其他参数生成工作空间……”。在该命令期间,将复制此文件夹,新的复制文件夹名称为“ext”并放置在 [工作区文件夹] 中。我选择先生成工作区,然后为 SVN 添加额外的文件夹级别。

    C:\SVN\apps\sencha\mvc\trunk\{app}\
    C:\SVN\apps\sencha\mvc\trunk\build\
    C:\SVN\apps\sencha\mvc\trunk\packages\
    

    .. 其中“sencha”是我们的 SVN 存储库

    ... "mvc" 是我们的 SVN 项目,也是我们的 Sencha 工作区

    ... 其中 {app} 可以替换为我们应用的名称,首字母大写。并意识到这个文件夹中可以有多个应用程序,以及我们的“build”文件夹和“packages”(主题)文件夹等。

    ...这样,由于主题是共享的,因此命令将保留在同一个工作区中,并且在工作区中生成构建。

    ...唯一的缺点是我们需要知道每个分支的上下文。当某些东西被分支时,“主干”下的内容进入branches\{name/date/version of branch}。因此,我认为我们将通过 branches\{app name}\{name/date/version of branch} 进行分支。

    这还允许您将“ext”文件夹放置在应用程序的上一级目录中。这需要您为每个应用程序构建一个虚拟目录。所以应用程序的 URL 将是 http://{domain}/{app name}/index.html,其中 {app name} 是我们的虚拟目录的名称。在 IIS 6 中,这是自动的。但是在 IIS 7 中,我们需要确保将虚拟目录放在站点下。在应用程序中拥有“ext”文件夹的另一个痛苦是它是一个库。这个文件夹中有很多文件用于所有示例代码和 Sencha 小部件。因此,将它放在每个应用程序文件夹中会增大每个应用程序的大小。因此,将其保存在上面的文件夹中是有意义的。部署代码时,您只需要框架文件和其他一些文件。您的大多数其他文件都是使用“sencha generate app”命令构建的。

    【讨论】:

      猜你喜欢
      • 2011-01-22
      • 1970-01-01
      • 2016-12-10
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多