2016-03-18 9 views
8

Ich versuche, eine Bibliothek von Typoskript-Komponenten zu erstellen, die von einer anderen Bibliothek verwendet werden, die ebenfalls typscriptbasiert ist. Wir verwenden derzeit webpack, um unsere Bündelung durchzuführen, wobei ts-loader der Lader ist, um die TS-Dateien zu nutzen.Erstellen einer gebündelten Webpack-Bibliothek mit Typescript

Ich bin mir nicht sicher, wie die .d.ts-Dateien für die Beispielbibliothek unten generiert werden. Typescript erstellt die .d.ts-Dateien (mit declaration auf True festgelegt), aber es ist eine Datei pro Modul, wo ich eine .d.ts-Datei brauche, die von den Verbrauchern verwendet werden kann.

https://github.com/raybooysen/typescript-webpack-example

Also meine Frage ist, gibt es ein kanonisches Beispiel dafür, wie dies zu erreichen? Gibt es eine Möglichkeit, dass Typoskript-Benutzer diese .d.ts-Dateien korrekt importieren können? Im Moment scheint es sehr wenig Dokumentation und Beispiele im Netz zu geben und würde jede Hilfe zu schätzen wissen.

+0

Haben Sie sich in mit Grunzen oder schlucken und mit dem 'tsc --declaration' Befehl oder einen Beitrag Build-Befehl, wenn Sie VS benutzen? – Igor

+0

Wir verwenden ts-loader, der den ts-Compiler mit der Datei tsconfig.json ausführt, deren Deklaration auf true gesetzt ist. Dies erzeugt jedoch ein D.ts-Datei-PER-Modul. Wenn das in Ordnung ist, was es nicht anfühlt, wie kann dies dann von einem konsumierenden Projekt konsumiert werden, das ebenfalls typoskriptbasiert ist. –

+0

@RayBooysen wie hast du es am Ende gelöst? Wäre hilfreich, Ihre endgültige Lösung zu kennen. –

Antwort

1

Also meine Frage ist, gibt es ein kanonisches Beispiel dafür, wie dies zu erreichen ist? Gibt es eine Möglichkeit, dass Typoskript Verbraucher können diese .d.ts Dateien importieren korrekt

Sie in der Regel wollen nicht das Bündel als Modul Verbraucher verwenden. Das ist eine Aufgabe der Person, die die Bibliothek als endgültiges Website-Artefakt benutzt. Dies bedeutet, dass Sie nur foo.ts/foo.js nebeneinander in den vom Knotenmodul bereitgestellten Artefakten haben. Diese können wie beim TypeScript-Compiler verwendet werden.

Mehr

https://basarat.gitbooks.io/typescript/content/docs/quick/nodejs.html

+0

Nicht sicher, was Sie mit "Sie wollen das Paket nicht als Modulverbraucher verwenden" Wenn nicht, was verwende ich? Ich kann nicht rechtfertigen, die rohe Quelle von einem Modul als ein Verbraucher zu verwenden, da die Bibliothek Abhängigkeiten haben kann, die ich nicht behandeln möchte. Zum Beispiel kann eine Bibliothek LESS/SASS-Dateien verwenden, die ich nicht kompilieren möchte. –

+0

Alle diese * CSS * Style-Dateien sollten ein Teil des Endverbraucher-Projekts werden und sie können wählen, wie sie es bündeln (einzelne Datei oder Split etc.) – basarat

+0

Das ist nicht was ich meinte. Wenn ich ein Bibliothekbauer bin, kann ich viele Technologien verwenden, die verarbeitet werden müssen, wie SASS. Dies sollte nicht in der Verantwortung des Bibliotheksverbrauchers liegen, da sie nicht die Last übernehmen wollen, diese Verarbeitung besitzen zu müssen.Das bedeutet, dass der Bibliotheksentwickler etwas ausgeben muss, das einfach JS und CSS ist, nicht TS und SASS. –

Verwandte Themen