2

在阅读了有关 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 中的分支仍然有效,并且其他命令仍然正常工作。

4

1 回答 1

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} 可以替换为我们的应用程序的名称,首字母大写。并意识到这个文件夹中可以有多个应用程序,以及我们的“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”构建的

于 2013-07-17T23:58:48.537 回答