node.js - Hvordan kompilere TypeScript ved å bruke npm-kommandoen?
Jeg ville bare vite om det finnes en kommando som direkte kan kompilere TypeScript-koden og få output. Akkurat nå gjør jeg det slik at hver gang jeg gjør endringer i filen, må jeg kjøre kommandoen på nytt for å kompilere den.
npm start
Dette starter nettleseren og deretter må jeg stoppe kjøringen ved å bruke Ctrl+C og så må jeg kjøre filen ved å bruke npm-kommandoen
node filename
å se resultatet.
Så det jeg vil vite er, finnes det noen npm-kommando som vil kompilere .ts-filen og se endringene jeg har gjort i filen mens jeg kjører filen ved bruk av
node filename
kommando
Svar #1
Du kan starte tsc-kommandoen (TypeScript-kompilatoren) med --watch-argumentet.
Her er en idé:
- Konfigurer TypeScript ved å bruke
tsconfig.json-filen - Kjør
tsc --watch, så hver gang du endrer en.ts-fil, viltsckompilere den og produsere utdataene (la oss si at du har konfigurert TypeScript til å legge utdataene i./dist-mappen) - Bruk
nodemonfor å overvåke om filer i./disthar endret seg, og om nødvendig starte serveren på nytt.
Her er noen skript (for å legge inn package.json) som kan hjelpe deg med det (du må installere følgende moduler npm install --save typescript nodemon npm-run-all rimraf)
"scripts": {
"clean": "rimraf dist",
"start": "npm-run-all clean --parallel watch:build watch:server --print-label",
"watch:build": "tsc --watch",
"watch:server": "nodemon './dist/index.js' --watch './dist'"
}
Da trenger du bare å kjøre npm start i en terminal
Svar #2
Dette er basert på løsningen foreslått av @ThomasThiebaud. Jeg måtte endre den litt for å sørge for at filene bygges i dist/ før nodemon prøver å starte serveren.
"scripts": {
"clean": "rimraf dist",
"build": "tsc",
"watch:build": "tsc --watch",
"watch:server": "nodemon './dist/index.js' --watch './dist'",
"start": "npm-run-all clean build --parallel watch:build watch:server --print-label"
},
Du må fortsatt kjøre npm start for å starte hele greia.
Svar #3
Her er min tilnærming: La oss si at du beholder alle typescript-filene dine i src-mappen og vil at utdata JavaScript-filer skal genereres i ./dist-mappen.
{
"name": "yourProjectName",
"version": "1.0.0",
"description": "",
"main": "./dist/index",
"types": "./dist/index",
"scripts": {
"dev": "tsc --watch & nodemon dist"
},
"author": "Gh111",
"license": "ISC",
"devDependencies": {
"yourdevDependencies": "^1.0.0"
}
}
og TypeScript-konfigurasjonsfil tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"outDir": "./dist",
},
"include": ["./src/**/*"],
"exclude": [
"node_modules"
]
}
Ok, hva skjer her
Først og fremst bør vi opprette tsconfig.json og fortelle TypeScript å legge de kompilerte filene i ./dist-mappen, og samtidig bør vi ekskludere node_module-mappen eller hva enn vi ønsker, og inkludere alt fra ["./src/**/*"]-katalogen.
Etter det bør vi i packages.json-filen spesifisere banen til vår kompilert index.js-fil
"main": "./dist/index"
og til slutt forteller vi tsc å --watch alle typescript-endringer, og nodemon å overvåke inne i ./dist-katalogen, og hvis noe endres vil nodemon starte serveren på nytt.
"scripts": {
"dev": "tsc --watch & nodemon dist"
},
For å kjøre skriptet, skriv npm run dev
