web-dev-qa-db-fra.com

paramètre outDir dactylographié dans tsconfig.json ne fonctionne pas

Je n'arrive pas à faire fonctionner le drapeau outDir lorsqu'il est utilisé dans package.json. La structure du répertoire est assez simple: tsconfig.json au niveau racine, avec un src/ répertoire et un seul fichier index.ts ainsi que d'autres répertoires représentant d'autres modules.

Lors de l'exécution de la commande tsc sur le fichier d'index, il en crée une nouvelle à côté de lui plutôt que dans le répertoire de génération. Qu'est-ce que je fais mal?

Mon tsconfig:

{
  "compilerOptions": {
    "outDir": "build"
  }
}

Mon script de build npm:

"build": "tsc src/index.ts"

J'appelle le script à partir du répertoire racine du projet. Fait intéressant, exécuter le même script avec un --outDir flag fonctionne très bien.

17
aryzing

Lorsque vous passez des fichiers pour la compilation avec tsc src/index.ts, votre tsconfig.json est ignoré.

De la documentation :

Lorsque des fichiers d'entrée sont spécifiés sur la ligne de commande, les fichiers tsconfig.json sont ignorés.

Votre script de compilation npm doit simplement être tsc sans transmettre aucun fichier.

25
Saravana

Ceci est ma structure de dossiers.

enter image description here

Conservez les fichiers TypeScript dans le dossier src et conservez tsconfig.json à la racine.

Dans le fichier json tsconfig, ajoutez le nom de dossier pour outDir dans compilerOptions

"compilerOptions": {    
    "outDir": "build",
    "module": "commonjs",
    "target": "es6",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "noImplicitAny": true,
    "sourceMap": true
  },

et exécutez les commandes ci-dessous.

cd juste dans le dossier racine et tapez

tsc

ou

tsc --outDir.

enter image description here

qui va construire le dossier outDir avec les fichiers js et map.js.

source: https://github.com/Microsoft/TypeScript/issues/10585

1
chandoo

Si vous utilisez l'option de compilateur incremental , vous n'obtiendrez peut-être pas de sortie si vous avez supprimé/modifié des fichiers dans votre outDir mais que vous n'avez pas supprimé le .tsbuildinfo fichier.

Mon problème était un peu différent, mais Google m'a amené ici - alors les autres pourraient aussi le penser.

0
joshweir