J'utilise Visual Studio Code et j'ai une structure de projet assez commune:
├── client/
│ ├── tsconfig.json
├── shared/
├── server/
│ ├── tsconfig.json
├── project.json
Les deux fichiers tsconfig ont des paramètres différents (par exemple, celui sous client/
cible ES5, celui sous server/
cible ES6).
Le problème est que je veux que le répertoire partagé soit inclus dans les deux projets. Je ne peux pas utiliser tsconfig car l'option exclude
ne me permet pas d'inclure un dossier situé dans un répertoire plus élevé que tsconfig.json, et d'utiliser files
, je dois constamment tenir à jour la liste des fichiers supporte pas les globs.
Notez que je peux bien compiler en ajoutant le dossier partagé dans tsc. Ce que je veux, c'est que le code Visual Studio IDE reconnaisse le code partagé pour intellisense, etc.
Est-ce que la seule option est d'attendre filesGlob ?
La nouvelle version de VSCode prend en charge TypeScript 2, ajoutant que cela ajoute la prise en charge des globs dans tsconfig.json avec l’option include
. Voir http://www.typescriptlang.org/docs/handbook/tsconfig-json.html
J'ai répondu à ceci ici: tsconfig extension answer
L'essentiel de la réponse:
pour ce faire, vous pouvez étendre votre fichier tsconfig.json de base:
il suffit de ne pas exclure les répertoires de la base tsconfig.json et TypeScript devrait pouvoir résoudre vos typages pour vous (sachez que cela est vrai en utilisant node_modules/@ types ou le module typings)
Par exemple:
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
}
}
Est-ce que la seule option est d'attendre filesGlob?
Meilleure option:
tsconfig.json
et uniquement bundle (en utilisant quelque chose comme webpack) les fichiers dans client
(le webpack récupérera les références au partagé). C’est le workflow que j’utilise ici https://github.com/alm-tools/alm ???? (le seul tsconfig.json https://github.com/alm-tools/alm/blob/master/src/tsconfig.json )
Ce flux de travail est également traité dans les documents de conception d'alm: https://basarat.gitbooks.io/alm/content/contributing/