Ich hatte mit dem gleichen Problem für meine Entwicklungsumgebung zu kämpfen, bis ich bemerkte, dass nodemon
die API es uns ermöglicht, das Standardverhalten zu ändern, um einen benutzerdefinierten Befehl auszuführen. Beispielsweise:
nodemon --watch 'src/**/*.ts' --ignore 'src/**/*.spec.ts' --exec 'ts-node' src/index.ts
Oder noch besser: Externalisieren Sie die Konfiguration von nodemon in eine nodemon.json
Datei mit dem folgenden Inhalt und führen Sie sie einfach aus nodemon
, wie Sandokan vorgeschlagen hat:
{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./index.ts" }
Auf diese Weise können Sie einen ts-node
Prozess live neu laden , ohne sich um die zugrunde liegende Implementierung kümmern zu müssen.
Prost!
Aktualisiert für die neueste Version von nodemon:
Erstellen Sie eine nodemon.json
Datei mit dem folgenden Inhalt.
{
"watch": ["src"],
"ext": "ts",
"ignore": ["src/**/*.spec.ts"],
"exec": "ts-node ./src/index.ts" // or "npx ts-node src/index.ts"
}
index.ts
es sich um eine Express-Instanz handelt, wie kann ich sie{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./app-server.ts" }
und einfach eingebennodemon
./
vor den Ordnernamen hinzuzufügen, und es ist kaputt gegangen. Das hat bei mir funktioniert :{ "verbose": true, "watch": ["server/**/*.ts"], "ext": "ts js json", "ignore": ["server/**/*.spec.ts"], "exec": "ts-node index.ts" }
. Und Kommandozeile:nodemon --watch server/**/*.ts --ignore server/**/*.spec.ts --verbose --exec ts-node index.ts
ext
in der Konfigurationsdatei einstellen müssen , damit sich die Suche nach ts ändert. Meine Konfigurationsdatei sieht folgendermaßen aus:{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "ext": "ts js json", "_exec": "node dist/startup.js", "exec": "ts-node src/startup.ts" }
Ich habe abgeladen
nodemon
undts-node
für eine viel bessere Alternative,ts-node-dev
https://github.com/whitecolor/ts-node-devRenn einfach
ts-node-dev src/index.ts
quelle
tsc --watch
.nodemon
mitts-node
. Danke dir!"start": "ts-node-dev src"
. Keine Notwendigkeit für Babel, Nodemon oder eine der mitgelieferten Konfigurationen. Alles wird für Sie erledigt.Hier ist eine Alternative zur Antwort des HeberLZ mit npm-Skripten.
Mein
package.json
:-e
flag setzt die zu suchenden Erweiterungen,-w
legt das überwachte Verzeichnis fest,-x
führt das Skript aus.--inspect
imwatch:serve
Skript ist eigentlich ein node.js-Flag, es aktiviert nur das Debugging-Protokoll.quelle
ts-node --inspect -- src/index.ts
jetzt daran liegen .-e ts -w ./src
hat den Trick für mich gemacht - dies funktionierte mit einem von Loopback4 CLI generierten ProjektSpeziell für dieses Problem habe ich die
tsc-watch
Bibliothek erstellt. Sie können es auf npm finden .Offensichtlicher Anwendungsfall wäre:
tsc-watch server.ts --outDir ./dist --onSuccess "node ./dist/server.js"
quelle
"[...] similar to nodemon but for TypeCcript."
:)In
"watch": "nodemon --exec ts-node -- ./src/index.ts"
zuscripts
Abschnitt Ihrerpackage.json
.quelle
Das funktioniert bei mir:
Anscheinend danke seit dieser Pull-Anfrage: https://github.com/remy/nodemon/pull/1552
quelle
ts-node
installiert.node_modules/
? Für mich scheitert es, wenn ich es nicht habe.ts-node
installiert werden. Das Ausführen dieses Befehls ohnets-node
führt zu einemfailed to start process, "ts-node" exec not found
Fehler. Sie hatten dies wahrscheinlich als übrig gebliebenes Artefakt innode_modules
. Abgesehen davon ist diese Lösung viel besser, da keine zusätzliche Konfiguration erforderlich ist.Sie könnten ts-node-dev verwenden
Der Zielknotenprozess wird neu gestartet, wenn sich eine der erforderlichen Dateien ändert (als Standardknotenentwickler), der Typescript-Kompilierungsprozess wird jedoch zwischen den Neustarts gemeinsam genutzt.
Installieren
und Ihre package.json könnte so sein
quelle
Ich habe mit
und Garnstart .. ts-Knoten nicht wie 'ts-Knoten'
quelle
Fügen Sie dies Ihrer Datei package.json hinzu
Damit dies funktioniert, müssen Sie auch ts-node als dev-Abhängigkeit installieren
Führen Sie aus
yarn dev
, um den Entwicklungsserver zu startenquelle