我开始用meteor构建一个Web应用程序。作为流星文档,它在如何构建应用程序中的文件方面非常灵活,但我希望为进一步维护创建更好的项目结构。是否有任何标准的项目结构可以参考我的项目?
答案 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有任何意义,但client
,server
,lib
和public
就是其中之一。如果您在顶层使用其他目录,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)来组织项目。这使项目在其结构中具有更多的语义感。我还将所有服务器出版物和服务器方法放入他们自己的文件中,只是为了防止我的服务器主文件增长到超过一千行。