我们有应用程序类X,Y和Z在那里Y扩展X和Z延伸Y.
X在档案中X.js.
Y在档案中Y.js.
Z在文件中Application.js(即标准的ExtJS).
我们还有一家大公司,开发人员具有不同的技能,有些我们不想直接暴露X.js和Y.js.
为了说明,假设这些是文件:
X.js:
Ext.define('MyApp.X', {
extend: 'Ext.app.Application',
name: 'X',
launch: function () {
// Cool stuff
}
// More cool stuff
});
Run Code Online (Sandbox Code Playgroud)
Y.js:
Ext.define('MyApp.Y', {
extend: 'MyApp.X',
name: 'Y',
launch: function () {
// Call the parent X to set up
this.callParent(arguments);
// Cool stuff
}
// More cool stuff
});
Run Code Online (Sandbox Code Playgroud)
Application.js:
Ext.define('MyApp.Z', {
extend: 'MyApp.Y',
name: 'Z',
launch: function () {
// Call the parent Y to set up
this.callParent(arguments);
}
});
Run Code Online (Sandbox Code Playgroud)
该app/目录如下所示:
app/
model/
store/
view/
X.js
Y.js
Application.js
Run Code Online (Sandbox Code Playgroud)
该公司希望X.js并且Y.js不受直接关注,因此基本上其他开发人员只会看到Application.js:
app/
model/
store/
view/
Application.js
Run Code Online (Sandbox Code Playgroud)
所以有几个问题:
1)我可以把X.js和Y.js别的地方?它们只需要脱离直接视图,因此开发人员修改它们的可能性较小.我想到了"app",但我不确定它对ExtJS是否具有"特殊意义",看起来有点愚蠢app/app/:
app/
app/
X.js
Y.js
model/
store/
view/
Application.js
Run Code Online (Sandbox Code Playgroud)
2)包含派生自的类的文件夹是否有推荐的名称Ext.app.Application?
3)我可以将它们放在"隐藏"文件夹中,例如以"."开头的文件夹吗?
app/
.js/
X.js
Y.js
model/
store/
view/
Application.js
Run Code Online (Sandbox Code Playgroud)
4)我是否需要在构建过程中添加任何配置信息?
第一.对您而言,最好的解决方案可能就是将这些内容移到单独的软件包http://docs.sencha.com/cmd/6.5.3/guides/cmd_packages/cmd_packages.html中.这样做可能需要一点点时间.但是因为我不太了解你的情况,所以让我谈谈你想要的方式.
1)我可以将X.js和Y.js放在其他地方吗?它们只需要脱离直接视图,因此开发人员修改它们的可能性较小.
你可以把它们放在任何你想要的地方 但我不明白其他人"修改"它们的观点.只需在这些文件的顶部发表评论即无法编辑它们.而且因为你正在使用版本控制(对吗?),对它们的修改永远不会通过代码审查.
2)是否存在包含从Ext.app.Application派生的类的文件夹的推荐名称?
我不知道.你可以随意命名.但请参阅我关于类命名及其文件夹的说明.
3)我可以将它们放在"隐藏"文件夹中,例如以"."开头的文件夹吗?
是的你可以.但请记住,.folders并非真正隐藏.默认情况下,它仅适用于Linux和Mac.不在Windows上.如果我没有弄错,大多数IDE都会显示这些文件夹.它只在文件浏览器中实现,这些文件是"隐藏的".
4)我是否需要在构建过程中添加任何配置信息?
这取决于.如果你拥有该app文件夹下的所有内容,它应该是开箱即用的.否则,您可能需要对app.json文件进行编辑.
所以我们假设您希望将它们放在不同的地方.甚至没有在app文件夹中.让我们假设名为"hidden"的文件夹直接位于项目根目录中.
MyApp/
.hidden/
app/
ext/
...
Run Code Online (Sandbox Code Playgroud)
在此文件夹中,我们可以根据需要包含任何类或文件.
该MyApp/app/Application.js文件看起来像这样:
Ext.define('MyApp.Application', {
extend: 'MyApp.Master',
});
Run Code Online (Sandbox Code Playgroud)
要完成这项工作,请查看MyApp/app.json文件,该文件是任何Sencha Cmd项目的主要"设置"文件.在那里我们需要添加关于Cmd的类路径的注释,以便能够找到这些文件:
"classpath": [
"app",
".hidden"
],
Run Code Online (Sandbox Code Playgroud)
现在项目应该没有任何问题.如果您想进行任何其他修改,请查看app.js,它是项目的主要入口点.
我用Ext 6 Classic和Cmd 6.5.1测试了这个
命名约定:
指定类时,classname中的点也应定义文件位置.所以,当你有这样的类:MyApp.view.main.Main一个希望找到它的文件夹中MyApp/app/view/main/Main.js,但它不是必需的,你可以让他们所有的一个文件夹中,并Cmd的会为您处理.但我希望,当你开始将文件移动到一些"隐藏"文件夹时,它将不再那么清楚了.
| 归档时间: |
|
| 查看次数: |
288 次 |
| 最近记录: |