2016-11-25 9 views
1

Ich versuche zu verstehen, wie Typescript in einem Node.js-Projekt funktioniert. Um dies zu erreichen, habe ich meinen eigenen Ordner custom_modules mit einem separaten Ordner @types für meine Erklärungen erstellt, während die eigentliche Implementierung ist unter der custom_modules versucht, die Struktur von node_modules nachzuahmen. Mein Ziel ist es, dieses Modul im Projekt nicht-relativ mit separater Deklaration und Implementierung nutzbar zu machen. Ich habe ein Projekt zur Einrichtung in der Lage, die mit diesem Setup erstellt, aber es Fehler mit fliessendem:Typescript Benutzerdefinierte Knotenmodule

Cannot find module 'foo'

Die Quelle ist hier verfügbar: https://github.com/anorborg/learn-ts

Antwort

0

Der node_modules Ordner ein etwas spezieller Fall ist in wie Typings gehandhabt werden. Dies ist ein Ergebnis der Funktionsweise von nodejs. Sehen Sie sich die [Modul-Auflösung] -Dokumentation an (https://www.typescriptlang.org/docs/handbook/module-resolution.html), sie beschreibt ausführlicher, wie die Modulauflösung in Typoskripten funktioniert.

Aber kurz, um Ihre Frage zu beantworten: Sie können auf diese Weise nicht-relative Modulpfade nicht verwenden. Der Knoten sucht zur Laufzeit in node_modules nach der Datei und findet sie dort nicht. Die Eigenschaft paths in der Datei tsconfig.json dient dazu, Probleme zu lösen, die in anderen Fällen auftreten können, z. B. beim Targeting von RequireJS oder SystemJS, aber nicht beim Targeting von Knoten.

Verwandte Themen