Jestem węzłem noob. Jaka jest różnica między "pakietem" a "modułem" w Node.js?Różnica między modułem a pakietem w węźle?
Odpowiedz
Każda aplikacja węzła to package
i powinna mieć plik package.json
. Te aplikacje, które działają jako oprogramowanie pośrednie (lub odpowiednik bibliotek) i są przeznaczone do zainstalowania w innych aplikacjach, to: modules
.
W skrócie wszystko modules
są packages
, ale nie wszystkie packages
mają być wykorzystane jako modules
, choć wielu może być.
Moduły zostaną zainstalowane, jeśli na liście dependencies
w pliku package.json
i umieszczone w folderze node_modules
, ale npm
recurses poprzez ich package.json
plików dodać modules
one polegać.
Modules są bibliotekami dla node.js. Zobacz poniższy fragment api:
Węzeł ma prosty system ładowania modułów. Węzły pliki i moduły są w korespondencji jeden-do-jednego.
Przykłady modułów:
- Circle.js
- Rectangle.js
- Square.js
Pakiet stanowi jeden lub więcej modułów (biblioteki), grupy (lub zapakowane) razem. Są one powszechnie używane przez inne pakiety lub projekt własny. Node.js używa package manager, gdzie można znaleźć i zainstalować tysiące pakietów.
Przykład pakietu:
Shapes <- Package name
- Circle.js <-
- Rectangle.js <- Modules that belong to the Shapes package
- Square.js <-
Zasadniczo, można zainstalować pakiet, Shapes
i mieć dostęp do koła, prostokąta, a kwadratowych modułów.
Wszystko, co możesz require()
to moduł. W większości przypadków w świecie CommonJS jeden plik jest modułem.
Pakiet może zawierać kilka modułów, ale zwykle ładuje punkt wejścia (main
), który jest określony w package.json czy to index.js jeśli nie main
nieruchomość jest zapewnione, na przykład: require('express')
ale można też wymagać innego pliku (nie główny plik), jeśli zna lokalizację, na przykład: require("express/lib/application")
(w node.js można pominąć rozszerzenia: js)
pakiet można uzyskać dostęp z innych modułów pakiety, jeśli są wymienione w dependencies
właściwości package.json.
Właściwie npm instaluje wszystkie pakiety w node_modules co jest mylące, ponieważ powinien być node_packages.