Heute stand ich vor einer komplexen Typescript-Situation im Zusammenhang mit einer Bibliothek, .d.ts-Dateien und relativen Pfaden.
Wir veröffentlichen eine Bibliothek von React-Komponenten (einschließlich der Typen) auf npm.
Unsere Front-End-Projekte enthalten diese Bibliothek wie jedes andere npm-Paket.
Normalerweise haben unsere Frontend-Projekte in ihrer tsconfig.json die Option „skipLibCheck: true“
Eine unserer Apps hatte dieses Flag nicht (standardmäßig ist dieses Flag deaktiviert und ehrlich gesagt verstehe ich nicht, wer dieses Verhalten haben möchte)
Die Sache ist, dass die Flagge nicht da war und wir einen TS-Fehler bekamen:
Und es war ein fairer Fehler: Die verteilte Datei aus unserer Bibliothek versuchte, etwas aus einem absoluten Pfad zu importieren
import { Foo } from 'absolutePath';
Diese Zeile macht in der Bibliothek selbst Sinn, aber nicht in node_modules/bla/bla/bla
Ts ist richtig: Ist dieser absolute Weg hier bei uns?
Beim Durchstöbern des Ordners „dist/“ habe ich überprüft, ob einige resultierende Komponentendateien mithilfe relativer Pfade korrekt transpiliert wurden:
PANIKMOMENT: Warum einige transpilierte .d.ts-Dateien absolute Pfade verwenden, während andere relative Pfade verwenden ????
Mehrere Stack Overflow-Beiträge und -Probleme, Threads und Diskussionen auf GitHub später (ich werde überspringen, was nicht funktioniert hat)
Ich habe diese Vite-Warnung während der Bauzeit bemerkt:
Export of «module» was reexported through «file» while both modules are dependencies of each other and will end up in different chunks by Rollup.
also... Zirkuläre Abhängigkeiten ist es.
Ich habe die zirkulären Abhängigkeiten in unseren Importanweisungen gelöst und jetzt ist alles in Ordnung.
Wenn Sie Probleme mit Ts haben? Transpilieren absoluter Pfadanweisungen anstelle relativer Pfade in Ihrer Bibliothek,
Wenn dies zu einem Ts-Fehler in der Client-App führt, könnte dies an einer zirkulären Abhängigkeit in Ihrem Quellcode liegen.
--
Danke fürs Lesen
Mein ursprünglicher Thread bei X
Das obige ist der detaillierte Inhalt vonTs transpiliert absolute Pfadanweisungen in Ihrem npm-Paket. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!