Da jeg begyndte at bruge typescript, var en af de første udfordringer, jeg stødte på, at jeg skal bygge/kompilere min typescript-fil til javascript, før jeg kan køre nodeserveren.
Så for at kompilere ville jeg køre:
npm run build
og for at køre nodeserveren vil jeg udstede:
node index.js
For at gøre ting automatisk vidste jeg, at jeg kan se ændringer af mine .js-serverfiler ved at bruge pakker som nodemon , så jeg installerede det og indstillede derefter scripts objekt som følgende i min package.json fil:
"scripts": {
"build": "tsc -p .",
"start": "node index.js",
"dev": "nodemon index.ts"
}
bygningen ejendomsværdi er, hvad der ville blive kørt, når vi udsteder npm run build.
starten ejendomsværdi er, hvad der ville blive kørt, når vi udsteder npm run start . Du kan svare for udvikleren , højre.
Nu for automatisk at bygge dine typescripts til javascript, når du laver og gem ændringer til en typescript-fil, er der to måder at gøre det på
- tilføj -w flag til build-scriptet.
- eller fjern kommentarer, og indstil derefter uret egenskab til sand i compilerOptions objekt i din tsconfig.json-fil.
En af disse to ville blive ved med at se efter gemte ændringer i dine maskinskriftsfiler og derved kompilere automatisk.
Så i én terminalkørsel:npm run build , åbn derefter en anden terminal og kør npm run dev .
Hvis du udstedte npm, kør dev , vil din server køre og afhænge af filnavnet vedhæftet i dev-scripts . Omvendt for npm run start . I tilfældet her vil serveren køre fra index.ts hvis jeg udstedte npm run dev .
Kompilering fra typescripts til javascripts ville ske automatisk på grund af watch flaget, -w eller sætte det til true i tsconfig.json fil.
Serveren genstartes automatisk, fordi vi bruger nodemon at håndtere det.
Bare forskellige terminaler.
Tag også disse tips i betragtning:
- Nodejs-serveren kører på javascript-filer
- Ændringer til typescript er blevet gemt og kompileret/bygget til javascript
- Vi skal bygge automatisk
- og vi skal starte vores server automatisk
Din bror i copy and paste,
Abdwahab
Tweet til mig @wahabind