这是一个相当广泛的,自以为是的话题,所以我会尽量给其涉及流星指南中所讨论的事项的回答言简意赅。
首先,我会按照教程来完成它的目的。对我来说,它似乎并不打算教你如何构建一个复杂的应用程序,而是要在基本的Meteor项目中掌握React。
对项目结构的问题没有确切的答案,因为它是相当自以为是。一些按功能分区,另一些按功能分区;有些喜欢深层嵌套,有些喜欢更平坦的结构。
的主题是,模块的明确import
语法让你的依赖明确,从而防止了猜测或尴尬的文件名,并失去语义,并且会发现每个符号一个不平凡的任务源的需求。
应用程序结构教程也不完整,主要包括指南。
假设像下面这样简单的结构,与用例相当紧密配合:
.
├── client
│ └── main.js
├── imports
│ ├── api
│ │ ├── api.js
│ │ ├── api-server.js
│ │ └── module1
│ │ ├── collections.js
│ │ ├── methods.js
│ │ └── server
│ │ └── publications.js
│ ├── client
│ │ └── index.js
│ └── server
│ └── index.js
└── server
└── main.js
凡是在imports
目录不会自动导入。这一切都始于server/main.js
和client/main.js
入口点。
他们反过来导入imports/<target>/index.js
,这是应用程序为每个目标(客户端/服务器)引导的位置。
由于部分api
代码是特定于服务器的,因此您可能需要创建一个server-api.js
文件或类似的文件,该文件也可以导入服务器资源。
在引导过程中,服务器的index.js
将
import '../api/api-server';
api-server.js
将:
import './api';
import './module1/server/publications';
而client/index.js
可以直接导入api.js
。
的标准方法和出版物不出口任何符号,所以不需要单独导入它们,而只是说他们在定义的文件
api.js
将:
import './module1/methods';
其中methods.js
和publications.js
将导入collections.js
文件,假设他们需要它。
再次,这是一个非常广泛和有见地的话题,并且有几种方法来组织您的项目。
我很了解流星1.2,并且用它制作了一个相当大的应用程序。现在我正在尝试为1.3版本的大型应用程序结构学习4件事情,即导入/导出,React和Mocha。 感谢您解决我遇到的复杂问题“标准方法和出版物不会导出任何符号.. [导入]文件”。我试着把'import'./server/publications.js'; import'./methods.js';'到tasks.js文件不足以使tasks.tests.js通过。现在就试试你的建议。 – Falieson
关于大规模应用程序结构:我所做的研究与您所说的完全相同 - 没有标准,所以我想我会使用流星的。 – Falieson
在教程中,tasks.tests.js只是从'./tasks.js'导入任务。是从'./collections.js'导入{Tasks}并导入'./methods.js'重复的代码,我把它放在tasks.js和tasks.tests.js中? 我的[tasks.js](https://github.com/Falieson/LearningReact/blob/meteor_todos/MeteorTodos_React/imports/api/tasks/tasks.js)和[tasks.tests.js](https:// github .com/Falieson/LearningReact/blob/meteor_todos/MeteorTodos_React/imports/api/tasks/tasks.tests.js) – Falieson