Ich habe mich mit dem modernen clientseitigen JS-Ökosystem vertraut gemacht und mich über CommonJS und AMD informiert (einschließlich der zugehörigen Tools - browserify, requirejs, onejs, jam, Dutzende anderer). Wenn ich eine Javascript-Bibliothek schreibe, wie kann ich sie so modularisieren / verpacken, dass sie am breitesten zugänglich ist (idealerweise für Benutzer, die auf CommonJS, AMD und insbesondere keine schwören)?
Beliebte Bibliotheken wie jQuery scheinen nur die Verkettung von Dateien der alten Schule zu verwenden, um sich selbst zu erstellen und dynamisch zu erkennen, ob sie in einen exports
oder den globalen Kontext schreiben sollen . Ich mache derzeit das Gleiche, aber der Hauptnachteil ist, dass es schön ist, wenn ich (im Gegensatz zu jQuery) von einigen Bibliotheken abhängig bin, Benutzer nicht bitten zu müssen, den Transitivsatz manuell vorab einzuschließen. (Obwohl ich derzeit nur zwei Abhängigkeiten habe.) Und natürlich die globale Verschmutzung von Namespaces.
Oder ist es am saubersten, für jeden Kontext mehrere Versionen meiner Bibliothek zu generieren?
Ich wundere mich auch über Verpackung und Veröffentlichung. Es gibt mehrere Systeme, aber ich glaube, das wichtigste ist die Laube, die leicht zu handhaben ist, da sie nur abgerufen wird. Ich frage mich jedoch, ob ich auch auf andere Paketsysteme wie Komponenten abzielen sollte (für die CommonJS erforderlich ist).
Gibt es andere relevante Aspekte, die ich beachten sollte? Gibt es dafür gute Beispielprojekte?