Dies ist ein ziemlich breites und meinungs Thema, also werde ich versuchen, eine präzise Antwort zu geben, die auf Angelegenheiten bezieht sich im Meteor-Führer diskutiert.
Zuerst würde ich mit dem Tutorial folgen, um seinen Zweck zu bekommen. Für mich scheint es, dass es nicht beabsichtigt, Ihnen beizubringen, wie man eine komplexe App erstellt, sondern React in einem grundlegenden Meteor-Projekt in den Griff bekommt.
Es gibt keine definitive Antwort auf die Frage der Projektstruktur, wie es ziemlich eigensinnig ist. Einige Partition nach Funktion, andere nach Funktion; manche mögen tiefe Verschachtelung und manche bevorzugen eine flachere Struktur.
Das Hauptthema ist, dass die explizite import
Syntax Module Ihre Abhängigkeiten explizit macht und daher die Notwendigkeit für Vermutungen oder umständlich Dateinamen verhindern, die Semantik und macht die Suche, die Quelle jedes Symbol eine nicht-triviale Aufgabe verliert.
Das App-Struktur-Tutorial ist ebenfalls nicht vollständig und enthält hauptsächlich Richtlinien.
sind so etwas wie die folgende einfache Struktur annehmen lassen, die ziemlich eng mit der Use-Case paßt:
.
├── 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
Alles, was in dem imports
Verzeichnis nicht automatisch importiert. Alles beginnt in den server/main.js
und client/main.js
Einstiegspunkten.
Sie importieren wiederum die imports/<target>/index.js
, wo die App für jedes Ziel (Client/Server) bootstrapped wird.
Da einige der api
-Code Server-spezifisch ist, möchten Sie wahrscheinlich eine server-api.js
-Datei oder dergleichen erstellen, die auch die Serverressourcen importiert.
Während des Bootstrap-Prozess, der Server des index.js
wird
import '../api/api-server';
api-server.js
wird:
import './api';
import './module1/server/publications';
während der client/index.js
konnte api.js
direkt importieren.
Standardmethoden und Publikationen exportieren kein Symbol, so dass keine Notwendigkeit, sie einzeln zu importieren, aber nur die Datei, die sie in definierten
api.js
wird.
import './module1/methods';
wo methods.js
und publications.js
wird die Datei collections.js
importieren, vorausgesetzt, sie benötigen sie.
Auch dies ist ein sehr breites und meinungsorientiertes Thema und es gibt mehrere Möglichkeiten, um Ihr Projekt zu strukturieren.
Ich verstehe Meteor 1.2 ziemlich gut und habe eine ziemlich große App damit gemacht. Jetzt versuche ich 4 Dinge große App-Struktur für 1,3, diesen Import/Export, React und Mocha zu lernen. Vielen Dank für die Behandlung der Komplikation, die ich hatte "Standardmethoden und Publikationen exportieren kein Symbol .. [Import] die Datei". Ich habe versucht, 'import './server/publications.js' zu setzen; Import './methods.js; 'in die Datei tasks.js reichte nicht aus, um tasks.tests.js bestehen zu lassen. Ich werde jetzt deine Vorschläge ausprobieren. – Falieson
In Bezug auf große App-Struktur: Die Forschung, die ich getan habe, schloss das gleiche wie Sie sagten - es gibt keinen Standard, also dachte ich, ich würde Meteor verwenden. – Falieson
Im Lernprogramm importiert tasks.tests.js nur Aufgaben von './tasks.js'. Importieren Sie {Tasks} aus './collections.js' und importieren Sie './methods.js' doppelten Code, den ich in tasks.js und tasks.tests.js eingegeben habe? Meine [Aufgaben.js] (https://github.com/Falieson/LearningReact/blob/meteor_todos/MeteorTodos_React/imports/api/tasks/tasks.js) und [tasks.tests.js] (https: // github .com/Falieson/LearningReact/blob/meteor_todos/MeteorTodos_React/imports/api/tasks/tasks.tests.js) – Falieson