web-dev-qa-db-fra.com

Visual Studio -> Bibliothèque TypeScript partagée -> TS6059 Le fichier '' n'est pas sous 'rootDir' ''. 'rootDir' devrait contenir tous les fichiers source

Nous utilisons Visual Studio 2017 et ont deux projets Web distincts qui sont censés partager des composants React écrits en TypeScript. Il peut également y avoir des fichiers JavaScript et CSS partagés. Pour cela, nous avons créé un Shared Project dans Visual Studio.

Quelle est la différence entre un projet partagé et une bibliothèque de classes dans Visual Studio 2015?

À l'heure actuelle, le projet ne possède qu'un seul fichier contenant ces informations.

export const Types = {
    Type1: '1',
    Type2: '2',
    Type3: '3'
}

Pour les tests, je peux le référencer comme ceci et Visual Studio localisera le fichier:

import { Types} from '../../../2/Constants/Types'

Cependant, lorsque j'essaie d'exécuter webpack, j'obtiens l'erreur suivante:

TS6059: Le fichier '/2/Constants/Types.ts' n'est pas sous 'rootDir' '/ 1'. 'rootDir' devrait contenir tous les fichiers source.

9
Ogglas

J'ai trouvé le problème dans mon tsconfig.json. J'avais la valeur suivante:

"rootDir": ".",

Si je l'ai changé, cela a commencé à fonctionner:

"rootDir": "../",

Cependant, la valeur par défaut était la suivante selon le manuel:

le répertoire racine commun est calculé à partir de la liste des fichiers d'entrée

Après avoir lu ceci, j'ai décidé de supprimer complètement la valeur et de laisser le compilateur définir la valeur par défaut à la place.

https://www.typescriptlang.org/docs/handbook/compiler-options.html

6
Ogglas

J'ai utilisé l'option de compilateur rootDirs à cet effet et il semble que ça marche bien!

"rootDirs": [
  "../some/folder/outside",
  "src",
]
11
jedmao