node.js - Hvordan overvåke og kjøre TypeScript på nytt ved endring?
Jeg har en veldig enkel applikasjon skrevet i TypeScript:
src/index.ts
import * as http from "http";
const server = http.createServer((request, response) =>
{
response.end("Hello, World");
});
server.listen(3000);
Så min TypeScript-konfigurasjon:
tsconfig.json
{
"compilerOptions": {
// Output options
"target": "es5",
"lib": [
"es2016"
],
"module": "commonjs",
"outDir": "./build",
}
}
Jeg kan bygge koden min ved å bruke npx tsc og deretter kjøre den ved å bruke node ./build/index.js, og når jeg besøker http://localhost:3000 i en nettleser ser jeg meldingen "Hello, World" -- alt er bra så langt
Nå ved å bruke npx tsc -w kan jeg overvåke filene for å se om de endres og kompilere dem på nytt når dette skjer. Denne kommandoen kjører «for alltid» (til den stoppes), så den hindrer meg fra å kjøre node ./output/index.js i samme terminal. Ved å bruke flere terminalvinduer eller en terminalmultiplexer kan jeg ganske enkelt kjøre node ./output/index.js, men denne filen vil ikke bli kjørt på nytt hvis koden min blir kompilert på nytt. Dette betyr at hvis jeg endrer strengen «Hello, World» til «Hello, Steven» vil jeg ikke se endringen før jeg manuelt stopper serveren min og starter den på nytt.
Finnes det en måte å overvåke TypeScript-filene mine på og kjøre resultatet slik at det stoppes og kjøres på nytt når koden min endres?
Svar #1
Du kan kjøre tsc og nodemon samtidig:
npx tsc -w & npx nodemon build
eller bruk nodemon med ts-node:
npx nodemon -x ts-node -e ts src
to run even if there are TS errors:
npx nodemon -x 'ts-node --log-error' -e ts src
eller bare bruk ts-node-dev:
npx ts-node-dev src
