Szukaj…


Wprowadzenie

Przed wydaniem Meteor 1.3 programiści Meteor byli sfrustrowani obsługą przez Meteor.js zależności plików i zmiennych globalnych. W odpowiedzi Meteor ustanowił nowe standardy dla struktur projektu, aby usprawnić system zależności projektu. W tym temacie wyjaśniono znormalizowaną strukturę projektu i związane z nią zasady.

Uwagi

klient
Cały kod w katalogu klienta jest uruchamiany tylko po stronie klienta lub w przeglądarce internetowej.

klient / kompatybilność
Katalog zgodności zawiera starsze lub zewnętrzne kody, takie jak biblioteki jQuery itp.

lib
Katalog lib jest ładowany przed innymi katalogami w projekcie Meteor i jest ładowany zarówno na serwerze, jak i kliencie. Jest to preferowane miejsce do definiowania modeli danych, bibliotek izomorficznych i logiki biznesowej.

import
Katalog importu jest katalogiem na serwerze, który jest dostępny zarówno dla serwera, jak i klienta, ale tylko przed dostarczeniem pakietu klienta do klienta.

paczki
Katalog pakietów jest miejscem, w którym niestandardowe pakiety są przechowywane podczas programowania lokalnego. Podczas korzystania ze standardowego polecenia meteor add package:name aby dodać pakiet, Meteor zajrzy najpierw do tego katalogu, jeśli pakiet lokalny ma odpowiednią nazwę opisu w swoim pliku package.js . Jeśli nie, sonduje atmosferę jak zwykle.

prywatny
Prywatny katalog zawiera pliki statyczne, które powinny być dostępne tylko na serwerze WWW.

publiczny
Katalog publiczny zawiera pliki statyczne, które są dostępne tylko w kliencie aplikacji. Może to obejmować zasoby marki itp.

serwer
Katalog serwera zawiera zasoby po stronie serwera. Może to obejmować logikę uwierzytelniania, metody i inny kod, który może wymagać rozważenia ze względów bezpieczeństwa.

testy
Katalog testów jest domyślnie pomijany, gdy aplikacja jest pakowana i wdrażana.

Jak zasugerował Richard Silverton , wygodnym pomysłem jest poddanie katalogu kontroli projektu meteor nie tylko kontroli wersji, ale także katalogu nadrzędnego.

W ten sposób możesz utrzymywać pliki pod kontrolą wersji bez konieczności radzenia sobie z meteor.

Klasyczne struktury katalogów

Pierwszą rzeczą, którą musisz wiedzieć, konstruując swoje aplikacje, jest to, że narzędzie Meteor ma kilka katalogów, które są zakodowane na sztywno z określoną logiką. Na bardzo podstawowym poziomie następujące katalogi są „upieczone” w pakiecie Meteor.

client/                                  # client application code
client/compatibility/                    # legacy 3rd party javascript libraries
imports/                                 # for lazy loading feature 
lib/                                     # any common code for client/server.
packages/                                # place for all your atmosphere packages
private/                                 # static files that only the server knows about
public/                                  # static files that are available to the client
server/                                  # server code
tests/                                   # unit test files (won't be loaded on client or server)

Strona referencyjna: Przewodnik Meteor> Katalogi specjalne

Struktura katalogów tylko dla pakietów

Wiele osób ostatecznie obsługuje wiele aplikacji i chce udostępniać kod między aplikacjami. Prowadzi to do koncepcji architektury mikrousług i wszystkich pakietów aplikacji. Zasadniczo kod z całej klasycznej struktury katalogów jest przekształcany w pakiety.

Chociaż nie ma sztywno zakodowanej logiki dla katalogów w paczkach, uważamy, że dobrą praktyką jest używanie klasycznej struktury katalogów podczas tworzenia pakietów. Tworzy to naturalną ścieżkę refaktora, ponieważ funkcje są prototypowane w aplikacji, a następnie rozpakowywane w pakiety do opublikowania i udostępnienia. Nazwy katalogów są wspólne, więc członkowie zespołu są mniej zamieszani.

client/                                  # client application code
packages/                                # place for all your atmosphere packages
packages/foo/client                      # client application code
packages/foo/lib                         # any common code for client/server
packages/foo/server                      # server code
packages/foo/tests                       # tests
server/                                  # server code

Struktura katalogu importów / modułów

Najnowsze wersje Meteora są dostarczane z obsługą ecmascript , czyli ES6 lub ES2015. Zamiast pakietów JavaScript obsługuje teraz instrukcje i moduły import , co zastępuje potrzebę aplikacji tylko dla pakietów. Najnowsza struktura katalogów jest podobna do struktury zawierającej tylko pakiet, ale używa katalogu /imports zamiast /packages .

imports                                 #
imports/api                             # isomorphic methods 
imports/lib                             # any common code for client/server
imports/client                          # client application code
imports/server                          # server code

Struktura katalogów trybu mieszanego

Oczywiście możesz łączyć te podejścia i używać zarówno pakietów, jak i importów wraz z kodem aplikacji. Struktura trybu mieszanego jest najbardziej powszechna w trzech sytuacjach: aplikacja franken, która po prostu wyciąga trochę tu i tam bez ogólnej strategii; aplikacja, która jest aktywnie refaktoryzowana ze struktur klasycznych lub tylko pakietowych do struktury importów / modułów.

client/                                  # client application code
client/compatibility/                    # legacy 3rd party javascript libraries
imports                                  #
imports/api                              # isomorphic methods 
imports/lib                              # any common code for client/server
imports/client                           # client application code
imports/server                           # server code
lib/                                     # any common code for client/server.
packages/                                # place for all your atmosphere packages
packages/foo/client                      # client application code
packages/foo/lib                         # any common code for client/server
packages/foo/server                      # server code
packages/foo/tests                       # tests
private/                                 # static files that only the server knows about
public/                                  # static files that are available to the client
server/                                  # server code
tests/                                   # unit test files (won't be loaded on client or server)

Kolejność ładowania katalogu

Pliki szablonów HTML są zawsze ładowane przed wszystkim innym

Pliki zaczynające się od main. są ładowane jako ostatnie

Pliki w dowolnym katalogu lib / są ładowane w następnej kolejności

Pliki z głębszymi ścieżkami są ładowane w następnej kolejności

Pliki są następnie ładowane w kolejności alfabetycznej całej ścieżki

Link referencyjny

Strona referencyjna: Meteor Guide> Struktura aplikacji> Domyślna kolejność ładowania plików



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow