流星的项目结构

时间:2014-12-24 02:47:13

标签: meteor

我开始用meteor构建一个Web应用程序。作为流星文档,它在如何构建应用程序中的文件方面非常灵活,但我希望为进一步维护创建更好的项目结构。是否有任何标准的项目结构可以参考我的项目?

2 个答案:

答案 0 :(得分:1)

https://github.com/EventedMind/em

按照说明操作后,您将获得完整的应用程序结构,但如果您是Meteor的新手,我宁愿使用if(Meteor.isClient)和isServer命令保持简单

答案 1 :(得分:0)

我的应用程序结构看起来像这样:

MY_APP/
├── client/
│   ├── html/
│   │   ├── template_one.html
│   │   ├── template_two.html
│   │   └── etc
│   ├── css/
│   │   ├── template_one.css
│   │   ├── template_two.css
│   │   └── etc
│   ├── lib/
│   │   └── util.js
│   ├── js/
│   │   ├── template_one.js
│   │   ├── template_two.js
│   │   └── etc
│   ├── common.css
│   └── main.js
├── public/
│   ├── image.jpg
│   └── favicon.ico
├── server/
│   └── main.js
└── shared.js

shared.js是我声明应该在客户端和服务器上都可用的Mongo集合的地方。最后加载main.js个文件 - 我有一个用于特定于服务器的代码,另一个用于特定于客户端的代码。 lib目录中的代码将在其他文件之前加载,因此我将JavaScript实用程序函数放在那里,我想让其他JavaScript文件可用。

我的大多数工作都在客户端上,我有很多复杂的模板,因此我将客户端代码分解为更多文件。客户端上的main.js大多数都有铁路由器路由。每个模板的事件处理和帮助程序都在相应的javascript文件中定义。

public用于图像,图标等等。只有少数目录名称对Meteor有任何意义,但clientserverlibpublic就是其中之一。如果您在顶层使用其他目录,Meteor会将它们视为共享。

在我的应用程序变得更复杂之后,我重构了项目结构,如下所示:

MY_APP/
├── client/
│   ├── template_one/
│   │   ├── template_one.html
│   │   ├── template_one.css
│   │   └── template_one.js
│   ├── template_two/
│   │   ├── template_two.html
│   │   ├── template_two.css
│   │   └── template_two.js
│   ├── template_three/
│   │   ├── template_three.html
│   │   ├── template_three.css
│   │   └── template_three.js
│   ├── lib/
│   │   └── util.js
│   ├── base_layout.html
│   ├── base_layout.css
│   └── main.js
├── public/
│   ├── image.jpg
│   └── favicon.ico
├── server/
│   ├── publish.js
│   ├── methods.js
│   └── main.js
└── shared.js

基本上,我开始根据功能区域(不同的模板对应于不同的功能区域)而不是文件类型(html,css或js)来组织项目。这使项目在其结构中具有更多的语义感。我还将所有服务器出版物和服务器方法放入他们自己的文件中,只是为了防止我的服务器主文件增长到超过一千行。