2016-06-01 11 views
6

ich Visual Studio-Code verwende und haben eine ziemlich gemeinsame Struktur Projekt:Wie verwenden Sie mehrere tsconfig-Dateien?

├── client/ 
│ ├── tsconfig.json 
├── shared/ 
├── server/ 
│ ├── tsconfig.json 
├── project.json 

Die beiden TSconfig Dateien haben unterschiedliche Einstellungen (zum Beispiel die eines unter client/ Ziele ES5, die man unter server/ Ziele ES6).

Das Problem ist, dass ich möchte, dass das freigegebene Verzeichnis in beiden Projekten enthalten ist. Ich kann dies nicht mit tsconfig tun, weil die Option exclude mich nicht zulassen, einen Ordner, der in einem höheren Verzeichnis als die tsconfig.json ist, und mit files Ich muss ständig die Liste der Dateien auf dem neuesten Stand halten, wie es nicht tut Unterstütze keine Globs.

Bitte beachte, dass ich durch Hinzufügen des freigegebenen Ordners in tsc fein zusammenstellen kann, was ich will, ist für die Visual Studio-Code IDE den gemeinsamen Code für intellisense usw.

ist die einzige Option für filesGlob warten, zu erkennen?

+0

Hilft das? https://www.npmjs.com/package/tsconfig-glob – 2426021684

+0

Sie können immer Atom-typescript verwenden – 2426021684

+0

Ja, ich denke, ich kann dieses Paket verwenden, um die Dateien-Array zu generieren, aber es ist ärgerlich, da ich es beobachten müssen die ganze Zeit um up-to-date zu bleiben. Ich habe das Atom schon vor Jahren getestet (bevor VSC veröffentlicht wurde), aber es war extrem langsam und fehlerhaft, obwohl es sich seither vielleicht verbessert hat. – Mike

Antwort

1

Ist die einzige Option auf filesGlob warten?

Beste Option:

  • Nur ein einziges tsconfig.json verwenden und nur Bündel (so etwas wie webpack verwenden) die Dateien in client (webpack Verweise auf gemeinsam genutzte abholen).

Dies ist der Workflow I https://github.com/alm-tools/alm hier bin mit (die einzigen tsconfig.json https://github.com/alm-tools/alm/blob/master/src/tsconfig.json)

Dieser Workflow auch in dem alm Design docs bedeckt ist: https://basarat.gitbooks.io/alm/content/contributing/

+2

Ich sehe nicht, wie dies das Problem löst, dass Intellisense korrekt in der IDE funktionieren soll. Ich kann alles gut zusammenstellen, indem ich die freigegebenen Dateien in meine Schluck-Skripte einfüge. – Mike

3

antwortete ich dies hier: tsconfig extension answer

Der Kern der Antwort:

Sie diese Ihre Basis tsconfig.json Datei tun können durch die Erweiterung:

tsconfig extension

gerade tun Verzeichnisse in der Basis nicht ausschließen tsconfig.json und typescript sollten in der Lage sein, Ihre Typings für Sie aufzulösen (Sie müssen wissen, dass dies mit node_modules/@ types oder dem typings-Modul möglich ist)

Zum Beispiel:

configs/base.json:

{ 
    "compilerOptions": { 
    "noImplicitAny": true, 
    "strictNullChecks": true 
    } 
} 

tsconfig.json:

{ 
    "extends": "./configs/base", 
    "files": [ 
    "main.ts", 
    "supplemental.ts" 
    ] 
} 

tsconfig.nostrictnull.json:

{ 
    "extends": "./tsconfig", 
    "compilerOptions": { 
    "strictNullChecks": false 
    } 
} 
+0

Hallo, aber wie kann ich den Compiler von der Eingabeaufforderung aufrufen? Ich habe die Basis-JSON-Datei aufgerufen und funktioniert nicht. Die anderen Dateien wurden ignoriert. –