這是一個相當廣泛的,自以爲是的話題,所以我會盡量給其涉及流星指南中所討論的事項的回答言簡意賅。
首先,我會按照教程來完成它的目的。對我來說,它似乎並不打算教你如何構建一個複雜的應用程序,而是要在基本的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