Walczyłem z tą samą rzeczą w moim środowisku programistycznym, dopóki nie zauważyłem, że nodemon
interfejs API pozwala nam zmienić jego domyślne zachowanie w celu wykonania niestandardowej komendy. Na przykład:
nodemon --watch 'src/**/*.ts' --ignore 'src/**/*.spec.ts' --exec 'ts-node' src/index.ts
Lub jeszcze lepiej: eksternalizuj konfigurację nodemona do nodemon.json
pliku o następującej treści, a następnie po prostu uruchom nodemon
, jak sugerował Sandokan:
{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./index.ts" }
Dzięki temu będziesz mógł przeładować ts-node
proces na żywo bez martwienia się o implementację.
Twoje zdrowie!
Zaktualizowano do najnowszej wersji nodemon:
Utwórz nodemon.json
plik o następującej treści.
{
"watch": ["src"],
"ext": "ts",
"ignore": ["src/**/*.spec.ts"],
"exec": "ts-node ./src/index.ts" // or "npx ts-node src/index.ts"
}
index.ts
jest to instancja ekspresowa, jak mogę ją zabić i zrestartować{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./app-server.ts" }
po prostu wpisznodemon
./
przed nazwami folderów i się zepsuł. Ten pracował dla mnie{ "verbose": true, "watch": ["server/**/*.ts"], "ext": "ts js json", "ignore": ["server/**/*.spec.ts"], "exec": "ts-node index.ts" }
. I wiersz poleceń:nodemon --watch server/**/*.ts --ignore server/**/*.spec.ts --verbose --exec ts-node index.ts
ext
plik konfiguracyjny, więc jego wygląd zmienia się. Mój plik konfiguracyjny wygląda następująco:{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "ext": "ts js json", "_exec": "node dist/startup.js", "exec": "ts-node src/startup.ts" }
Zrzuciłem
nodemon
its-node
na rzecz znacznie lepszej alternatywy,ts-node-dev
https://github.com/whitecolor/ts-node-devPo prostu biegnij
ts-node-dev src/index.ts
źródło
tsc --watch
.nodemon
przypadkuts-node
. Dziękuję Ci!"start": "ts-node-dev src"
. Nie potrzebujesz babel, nodemon ani żadnej konfiguracji, która jest z nim związana. Wszystko jest załatwione za ciebie.Oto alternatywa dla HeberLZ za odpowiedź , za pomocą skryptów KMP.
Mój
package.json
:-e
flaga ustawia rozszerzenia, których należy szukać,-w
ustawia obserwowany katalog,-x
wykonuje skrypt.--inspect
wwatch:serve
skrypcie jest tak naprawdę flaga node.js, po prostu włącza protokół debugowania.źródło
ts-node --inspect -- src/index.ts
z tego powodu .-e ts -w ./src
Specjalnie dla tego numeru stworzyłem
tsc-watch
bibliotekę. można go znaleźć na npm .Oczywistym przypadkiem użycia byłoby:
tsc-watch server.ts --outDir ./dist --onSuccess "node ./dist/server.js"
źródło
"[...] similar to nodemon but for TypeCcript."
:)To działa dla mnie:
Najwyraźniej dzięki od czasu tego żądania ściągnięcia: https://github.com/remy/nodemon/pull/1552
źródło
ts-node
zainstalowałemnode_modules/
? Dla mnie to zawodzi, jeśli go nie mam.ts-node
instalacji. Uruchomienie tego polecenia bezts-node
spowodujefailed to start process, "ts-node" exec not found
błąd. Prawdopodobnie miałeś to jako resztki artefaktu wnode_modules
. To powiedziawszy, to rozwiązanie jest o wiele ładniejsze, ponieważ nie wymaga dodatkowej konfiguracji.Dodaj
"watch": "nodemon --exec ts-node -- ./src/index.ts"
doscripts
sekcji swojegopackage.json
.źródło
możesz użyć ts-node-dev
Ponownie uruchamia proces węzła docelowego, gdy zmienia się którykolwiek z wymaganych plików (jako standardowy dev-node), ale dzieli proces kompilacji maszynopisu między restartami.
zainstalować
i Twój pakiet.json może być taki
źródło
zrobiłem z
i początek przędzy. ts-node nie tak jak „ts-node”
źródło
Wolałbym nie używać ts-node i zawsze uruchamiać z folderu dist.
Aby to zrobić, po prostu skonfiguruj plik package.json z domyślną konfiguracją:
a następnie dodaj plik konfiguracyjny nodemon.json :
Tutaj używam „exec”: „npm restart”,
więc cały plik ts ponownie skompiluje się do pliku js, a następnie ponownie uruchomi serwer.
Aby uruchomić w środowisku programistycznym,
Korzystając z tej konfiguracji, zawsze będę działał z plików rozproszonych i nie będę potrzebował węzła ts.
źródło
dodaj to do pliku package.json
i aby to zadziałało, musisz również zainstalować ts-node jako zależność programistyczną
uruchom,
yarn dev
aby uruchomić serwer deweloperówźródło