Verwenden von Webpack zum Generieren von Typoskript-Bibliotheken mit der Eingabe von Dateien

8

Momentan ist mein Bauprozess:

  • Schreiben Sie viele Typoskript-Dateien mit ES6-Modul-Syntax
  • Erzeuge einen index.ts, der alle Module von einem Punkt wieder exportiert
  • Kompilieren Sie zu CommonJS + System
  • Ausgabe-Deskriptor / Dateien eingeben

Dies führt zu einer index.js-Datei, die alle internen Dateien re-exportiert, ohne dass der Entwickler es konsumieren muss, sowie viele d.ts-Dateien, die die Dateistruktur spiegeln.

Jetzt funktioniert das, aber wenn ich diesen Ansatz für den Browser verwenden würde, müsste ich alle js im Web einpacken oder es wäre ein http-Anfrage-Albtraum, der alle einzelnen Dateien einzieht. Gegenwärtig wird diese Bibliothek als eine Abhängigkeit für andere Bibliotheken verbraucht, so dass es kein Endpunkt für Logik oder irgendetwas anderes ist, das ein Modul / eine Bibliothek ist.

Jetzt ist die Hauptfrage mit dem Webpack, ich weiß, dass ich TS laden kann und ein commonJS-Modul herausbringen kann, aber ich finde keine Möglichkeit, d.ts -Dateien mit Webpack zu erzeugen. Also gibt es eine Möglichkeit für mich, Webpack als Compiler / Packager in diesem Szenario zu verwenden und eine Ausgabe my-lib.js und my-lib.d.ts zu haben anstatt der aktuellen Methode, die viele einzelne Dateien ergibt.

== Zusätzliche Erläuterung zum Anwendungsfall ==

Nur um zu versuchen, sicherzustellen, dass alle auf derselben Seite sind, wenn ich sage, dass es eine Bibliothek ist, die wiederverwendet werden würde, was ich meine, ist, dass das etwas ist, das über npm oder jspm oder so etwas als Modul geladen wird Abhängigkeit für andere Module.

Nehmen wir zum Beispiel an, dass jquery nicht existiert und ich es erstellen werde, aber schreibe es in Typoskript für andere Entwickler, die in JS und TS konsumieren. Nun gibt Typoskript sowohl js-Dateien als auch d.ts-Dateien aus, die js-Dateien werden wie erwartet verwendet, aber die d.ts-Dateien erklären anderen Typoskript-Dateien, welche Typen in der Bibliothek enthalten sind.

Wenn ich also jquery in TS entwickelt habe, wie oben aufgeführt, möchte ich diese Ausgabe (sei es mit webpack oder tsc erstellt) auf npm / jspm / bower usw. veröffentlichen. Dann können andere diese Bibliothek wieder verwenden ihre eigenen Projekte.

So wird Webpack typischerweise verwendet, um eine "Anwendung" zu paketieren, die Logik und geschäftliche Belange enthält und direkt als Einstiegspunkt für eine größere Anzahl von Problemen verwendet wird. In diesem Beispiel würde es als Kompilierungs- und Verpackungsschritt für eine Bibliothek verwendet und würde über var myLib = require("my-lib"); oder ähnlich konsumiert werden.

    
Grofit 14.01.2016, 09:44
quelle

1 Antwort

1

Das Generieren der .d.ts-Dateien steht nicht im Zusammenhang mit dem Webpack. Mit Webpack können Sie entweder ts-loader oder awesome-typescript-loader verwenden. Beide verwenden tsconfig.json. Sie müssen declaration: true in Ihrem tsconfig.json hinzufügen.

Ich würde Ihnen auch empfehlen, sich typescript-library-starter anzuschauen. Dort finden Sie, wie es eingerichtet wurde, einschließlich UMD-Bündel und Typdefinitionen:).

    
Alex JM 11.04.2017 23:27
quelle

Tags und Links