2015-07-10 12 views
8

Ich lerne ES6-Module. Aber ich bin verwirrt mit dem Unterschied zwischen einem Modul und einer Bibliothek.Unterschied zwischen einem Modul und einer Bibliothek in JavaScript

Und auch, wie Modul und Bibliothek anders als ein node.js Paket ist.

+2

Was für eine gute Frage. Das Problem mit jeder Art von Technobabble ist, dass jeder ähnliche Begriffe für verschiedene Dinge verwendet. Aber ich würde sagen, dass "Bibliotheken" nur eine alte Sammlung nützlicher JavaScript-Funktionen sind, um das Schreiben allgemeiner Aufgaben zu erleichtern. Während "Module" sind Bibliotheken, die in einer Art von Standard-Art gekapselt sind, zum Beispiel CommonJS-Module, Asynchronous Module Definition (AMD) oder ECMAScript 6 Module (die schließlich zum universellen Standard werden sollte). Ich bin nicht zuversichtlich genug, um dies als eine richtige Antwort zu schreiben, aber ich freue mich darauf, was andere sagen. – kieranpotts

+0

Eine sehr gute lesen auf den Unterschied zwischen [Modul, Bibliothek und Framework] (http://StackOverflow.com/Questions/4099975/Difference-between-Amodul-Library-and-Aframework) im Allgemeinen. – RBT

Antwort

8

Eine module ist eine Softwareeinheit. Dies bezieht sich - abhängig vom Kontext - auf einen eigenständigen Teil des Quellcodes, auf die Datei, in der sich der Quellcode befindet, oder auf das Modulobjekt (Datenstruktur), das der Code deklariert (oder bei Ausführung erzeugt).
Normalerweise gibt es eine 1: 1: 1-Beziehung zwischen diesen, und das ist eine gute Übung. Sie finden selten mehrere Module in der gleichen Quelldatei . ES6-Implementierungen werden dies erzwingen, indem einzelne Dateien als einzelne Module genommen werden, die durch ihren eindeutigen Namen importiert werden können - so wie es zuvor mit CommonJS oder AMD Modulen gearbeitet hat.
Neben ES6-Modulen gibt es auch das Modulmuster, das IIFEs zum Einkapseln von Code und zum Erstellen von Singleton-Objekten verwendet. Einzelheiten siehe What is this JavaScript pattern called and why is it used?, here oder JS design patterns book.
Und da Modularität so wichtig ist, gab es viele Ansätze zur Implementierung Modullader, jeder mit seiner eigenen Syntax und Feinheiten, oft Teil eines größeren Rahmenwerkes. Weitere Informationen finden Sie unter this article.

Eine library ist eine Sammlung von nützlichen Dingen, die zusammengehören und als Ganzes verteilt sind. Dies kann mehr als reiner Quellcode oder mehr als eine Sprache umfassen, aber typischerweise nicht, wenn wir von einer "Javascript-Bibliothek" sprechen. Eine Bibliothek, die aus einer Reihe von js-Funktionen besteht, exportiert sie normalerweise als ein Modul.

1: Außer wenn sie zu einem einzigen Skript verkleinert wurden. Außerdem könnte HTML5 Möglichkeiten zum Deklarieren von Inline-ES6-Modulen einführen.

Verwandte Themen