web-dev-qa-db-fra.com

ts-node ignore les fichiers d.ts pendant que tsc compile avec succès le projet

Après avoir compilé mon projet TypeScript avec succès, j'avais l'intention de l'exécuter en mode débogage de VS Code en utilisant ts-node. Le problème est, ts-node ne trouve pas d.ts fichiers que j'ai créés (tandis que tsc n'a aucun problème avec).

La structure du projet est:

/
    conf/
    dist/
    src/
        types/
package.json
tsconfig.json

tsconfig.json les entrées pertinentes sont:

{
    "compilerOptions": {
        "target": "es2017",
        "module": "commonjs",
        // "lib": [],
        "sourceMap": true,
        "outDir": "dist",
        "rootDir": "src",
        "moduleResolution": "node",
        "baseUrl": ".",
        "paths": {
            "*": [
                "node_modules/*",
                "src/types/*"
            ]
        },
        // "rootDirs": [],
        // "typeRoots": [],
        // "types": [],
    },
    "include": [
        "src/**/*"
    ]
}

Le fichier de définition ts-node ne peut pas trouver est src/types/global.d.ts:

import { App } from '../App';

declare global {
    namespace NodeJS {
        interface Global {
            app: App;
        }
    }
}

Donc, en essayant de l'exécuter avec ts-node Je vois:

TSError: ⨯ Unable to compile TypeScript:
src/boot.ts(15,59): error TS2339: Property 'app' does not exist on type 'Global'.

Comment le résoudre globalement? J'ai trouvé que /// <reference path="./types/global.d.ts" /> fait l'affaire mais je devrais le répéter dans chaque fichier en utilisant global.app.

Ma version TypeScript est 3.0.1

13
Forseti

ts-node --files src/boot.ts

ts-node dans 7.0.0, par défaut ne charge pas les fichiers depuis tsconfig.json au démarrage, vous devez spécifier --files

19
欧阳斌