javascript - Köra Nodemon med Typescript-kompilering?


Jag vill att mina TypeScript-filer ska kompileras varje gång en fil sparas med kommandot tsc.

Hur kombinerar jag tsc-kommandot med kommandot som nodemon kör i build:live-scriptet

"scripts": {
    "start": "npm run build:live",
    "build:live": "nodemon --watch '*.ts' --exec 'ts-node' app.ts",
 }

detta skript får nodemon att kalla på sig själv två eller tre gånger:

"build:live": "nodemon --watch '*.ts' --exec 'ts-node app.ts & tsc'",

Svar #1

Nodemon kommer nu automatiskt att upptäcka och köra .ts-filer med ts-node. Det kommer faktiskt även att köra .py- och .rb-filer med python och ruby förresten, och du kan ge det en anpassad --exec för andra. Här är en länk till den relevanta koden inom nodemon.

Så följande borde vara okej:

"scripts": {
  "dev": "nodemon app.ts"
}

Svar #2

Det här ser ut att uppnå det du letar efter:

"start": "tsc-watch --project . --outDir ./dist --onSuccess \"nodemon ./dist/bin/www.js\""

Källa: https://github.com/Microsoft/TypeScript/issues/12996#issuecomment-349277673

Svar #3

Med det nuvarande svaret kan du stöta på problem när du använder ES-moduler. Ingen anledning att använda nodemon när du använder tsc-watch. Det använder inkrementell kompilering, vilket gör omstarten av din applikation mycket snabbare.

Jag fann att följande fungerade bäst:

"start": "tsc-watch --onSuccess \"node ./dist/app.js\""

outDir kan definieras i din tsconfig

Relaterade artiklar