ExtJS MVC应用程序的推荐SVN存储库结构是什么?

时间:2013-07-08 02:32:42

标签: svn iis extjs sencha-touch

在阅读了有关Sencha Cmd和使用ExtJS 4构建MVC应用程序的更多信息后,我发现ExtJS 4应用程序的结构如下。同一[包]中的[application]可以共享相同的SASS(语法上很棒的样式表)主题,而多个[application] s可以放在同一个[包]中。

使用“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中重构我的源代码仍然有用。

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

否则,我想知道我是否可以为Sencha Cmd设置配置,以便SASS的主题仍然有效,部署仍然有效,SVN中的分支仍然有效,其他命令仍能正常工作。

1 个答案:

答案 0 :(得分:0)

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

如果在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}可以替换为我们的应用名称,首字母大写。并意识到此文件夹中可以有多个应用程序,以及我们的“构建”文件夹和“包”(主题)文件夹等。

...这样,命令保持在同一个工作区内,因为主题是共享的,并且在工作区内生成构建。

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

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