2016-10-23 2 views
0

Wie erhalten Sie Typescript 2.0.3 zum Laden aller Definitionsdateien in einem Paket, das auf node_modules installiert ist?So erhalten Sie Typescript 2 zum Laden aller Definitionsdateien in node_modules

Ich habe ein Paket namens somatic geschrieben, das eine index.d.ts-Datei enthält, und es in ein Testprojekt installiert. Ich habe alles versucht, um die Definitionen zu laden, herumspielen mit den Typen und TypenRoot-Optionen in meinem tsconfig.json, aber ohne Erfolg.

Dieses implizite Referenzieren funktionierte vor ein paar Stunden, aber es hörte plötzlich auf zu arbeiten. Ich habe TypeScript 2.0.3 und Visual Studio Code neu installiert, das Problem besteht jedoch weiterhin.

Der einzige Weg, Typoskript laden meine Definitionsdatei haben, ist ein Verweis auf die Oberseite der Testdatei wie so hinzuzufügen:

/// <reference path="./node_modules/somatic/dist/index.d.ts" /> 

Das ist mein TSconfig:

{ 
    "compilerOptions": { 
     "allowJs": true, 
     "target": "es5", 
     "module": "commonjs", 
     "noImplicitAny": false, 
     "suppressImplicitAnyIndexErrors": true, 
     "removeComments": false, 
     "preserveConstEnums": true 
    } 
} 
+0

Die Datei 'package.json' dieses Pakets enthält diese Einstellung:' "types": "/dist/somatic.d.ts" '. Ich würde versuchen, den führenden Schrägstrich zu entfernen. – cartant

+0

Ich bearbeitet den lokal installierten Ordner des somatic-Pakets (in node_modules), um den führenden Schrägstrich zu entfernen, aber das Problem ist immer noch gleich – prmph

+0

"... plötzlich funktioniert nicht mehr" ... also was wurde geändert, bevor es aufgehört hat zu arbeiten? – cartant

Antwort

0

Wenn Sie benutze die "node" auflösungsstrategie (was ich denke), dann durchsucht TypeScript sich selbst im node_modules Ordner. Sie können ein wenig mehr über diese here mit Beispielen von Pfaden lesen, die es verwendet.

Vielleicht müssen Sie TypeScript aktualisieren oder der Ordner node_modules wird nicht an einem geeigneten Ort platziert, damit er ihn finden kann?

+0

Auch wenn ich die typeRoots-Option entferne, ist das Verhalten identisch, und mein node-modules-Ordner befindet sich im Standardverzeichnis unter Windows. – prmph

+0

Ich bin nicht sicher, was meinst du mit Standard-Ort auf Windows, sollte es ein direktes Kind eines Elternteils Ihrer Datei sein, wenn ich richtig verstehe. So z.B. Wenn Sie C: \ A \ B \ C \ myfile.ts haben, sollten sich die Knotenmodule entweder in A-, B- oder C-Ordnern oder direkt unter Laufwerk C: befinden. Wenn Sie z.B. Visual Studio und dann node_modules ist ein Ordner unter einem Projektstamm und damit für alle Dateien unter dem Projektstamm zugänglich. –

+0

Ja, ich habe die lokalen Knotenmodule unter meinem Projektordner. Und ich habe auch die globalen Knotenmodule in der Standardposition auf Windows – prmph

Verwandte Themen