2016-06-01 14 views
6

Sto usando codice Visual Studio e hanno una struttura di progetto abbastanza comune:Come utilizzare più file tsconfig?

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

I due file Tsconfig hanno diverse impostazioni (ad esempio quello sotto client/ obiettivi ES5, quello sotto server/ obiettivi ES6).

Il problema è che voglio che la directory condivisa sia inclusa in entrambi i progetti. Non riesco a farlo usando tsconfig perché l'opzione exclude non mi consente di includere una cartella che si trova in una directory superiore rispetto a tsconfig.json, e usando files Devo tenere costantemente aggiornato l'elenco dei file dato che non funziona Non supportare i glob.

Nota che posso compilare bene aggiungendo la cartella condivisa in TSC, quello che voglio è per Visual Studio Codice IDE a riconoscere il codice condiviso per intellisense ecc

è l'unica opzione di aspettare per filesGlob?

+0

Questo aiuto? https://www.npmjs.com/package/tsconfig-glob – 2426021684

+0

Puoi sempre usare l'atom-typescript – 2426021684

+0

Sì, credo che posso usare quel pacchetto per generare l'array di file, ma è fastidioso perché dovrò farlo guardare tutto il tempo per rimanere aggiornato. Ho provato Atom Age fa (prima che VSC fosse rilasciato) ma era estremamente lento e buggato, anche se forse è migliorato da allora – Mike

risposta

1

È l'unica opzione per attendere filesGlob?

opzione migliore:

  • Basta usare un singolo tsconfig.json E solo fascio (usando qualcosa come webpack) i file in client (webpack prenderà riferimenti a comune).

Questo è il flusso di lavoro che sto usando qui https://github.com/alm-tools/alm (il singolo tsconfig.json https://github.com/alm-tools/alm/blob/master/src/tsconfig.json)

Questo flusso di lavoro è anche coperto nella documentazione di progetto alm: https://basarat.gitbooks.io/alm/content/contributing/

+2

Non vedo come questo risolva il problema che consiste nel far funzionare correttamente l'intellisense nell'IDE? Posso compilare tutto bene includendo i file condivisi nei miei script gulp. – Mike

3

risposi questo qui: tsconfig extension answer

Il nocciolo della risposta:

si può fare questo, estendendo il file tsconfig.json di base:

tsconfig extension

basta fare non escludere le directory nella base tsconfig.json e dattiloscritto dovrebbe essere in grado di risolvere le tue tipizzazioni per te (so che questo è vero usando node_modules/@ types, o il modulo typings)

Ad esempio:

configurazioni/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

Salve, ma come posso chiamare il compilatore dal prompt dei comandi? Ho chiamato il file json di base e non funziona. Gli altri file sono stati ignorati. –

Problemi correlati