Probleme mit der NodeJS-, Koa- und Typescript-Integration und dem automatischen Neustart

Probleme mit der NodeJS-, Koa- und Typescript-Integration und dem automatischen Neustart

Versionshinweise

Node.js: 16.13.1

Erstellen eines Projekts

Erstellen Sie die folgende Verzeichnisstruktur

Projekt
├── Quelle
│ └── server.ts
├── Paket.json
└── tsconfig.json

package.json kann mit yarn init -y generiert werden
tsconfig.json kann mit tsc --init generiert werden ( typescript Paket muss global oder im Projekt installiert sein, um den tsc -Befehl verwenden zu können)

Abhängigkeiten installieren

Beachten:

  • Das Paket @tsconfig/node16 muss entsprechend der Version von Node.js geändert werden. Die auf meinem Computer installierte Version ist 16.xx , daher verwende ich @tsconfig/node16 . Weitere Informationen finden Sie in den Anweisungen in tsconfig/bases. Natürlich müssen Sie dieses Paket überhaupt nicht installieren. Die Vorteile dieses Pakets sind die öffentliche Verfügbarkeit und die allgemein empfohlene Konfiguration.
  • Wenn typescript global installiert wurde, entfernen Sie es mit dem folgenden Befehl
  • concurrently ist ein Toolkit zur gleichzeitigen Ausführung mehrerer Befehle
  • nodemon ist ein Toolkit, das Dateiänderungen überwacht und Programme automatisch neu startet
Garn hinzufügen Koa
yarn add typescript @tsconfig/node16 @types/node @types/koa gleichzeitig nodemon -D

Füllinhalt

src/server.ts

Koa von „koa“ importieren;

const server: Koa = new Koa();
const port: nummer = 3000;

server.use((ctx: Koa.DefaultContext) => {
    ctx.body = "hallo koa";
});

server.listen(port, () => {
    console.log(`Node.js v${process.versions.node}`);
});

tsconfig.json

Hinweis: Der Wert des Felds extends wird entsprechend dem von Ihnen installierten Paketnamen @tsconfig/node** ersetzt.

{
  "erweitert": "@tsconfig/node16/tsconfig.json",
  "Compileroptionen": {
    "Basis-URL": ".",
    "rootDir": "Quelle",
    "outDir": "Distanz",
    "noImplicitAny": wahr,
  },
  "enthalten": [
    "Quelle/**/*"
  ]
}

Paket.json

"Skripte": {
  "build-ts": "tsc",
  "build": "Garn-Builds-ts",
  "debug": "Garnaufbau und Garnüberwachung - Debuggen",
  "serve-debug": "nodemon --inspect dist/server.js",
  "serve": "Knotenverteilung/server.js",
  "Start": "Garnaufschlag",
  "watch-debug": "gleichzeitig -k -p \"[{name}]\" -n \"TypeScript,Node\" -c \"gelb.fett,cyan.fett,grün.fett\" \"npm:watch-ts\" \"npm:serve-debug\"",
  "watch-node": "nodemon dist/server.js",
  "watch-ts": "tsc -w",
  "watch": "gleichzeitig -k -p \"[{name}]\" -n \"TypeScript,Node\" -c \"gelb.fett,cyan.fett,grün.fett\" \"npm:watch-ts\" \"npm:watch-node\""
}

laufen

Unser gesamter Quellcode befindet sich im Verzeichnis src , und js von tsc kompilierten js-Dateien befinden sich im Verzeichnis dist , also dem in der Datei tsconfig.json angegebenen Pfad.

Lokale Entwicklung: Wenn kein dist -Verzeichnis vorhanden ist, müssen Sie zum Kompilieren und Generieren yarn build ausführen und dann yarn watch ausführen.

Bereitstellungsproduktion: Führen Sie nacheinander yarn build , yarn serve oder yarn start aus (serve“ und „start“ sind derselbe Befehl).

Verweise

Microsoft/TypeScript-Node-Starter

Dies ist das Ende dieses Artikels über die Integration von nodejs + koa + typescript und den automatischen Neustart. Weitere verwandte Inhalte zu nodejs koa typescript finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • nodejs+koa2 implementiert eine Nachahmung des SpringMVC-Frameworks
  • Beispielcode zum Hinzufügen, Löschen, Ändern und Überprüfen von JSON-Dateien basierend auf Koa (Node.js-Framework)
  • So verwenden Sie koa-log4 zum Verwalten von NodeJS-Protokollnotizen
  • Detaillierte Erläuterung des Implementierungscodes für die Abhängigkeitsinjektion von Typescript nodejs

<<:  Beispiel für die Implementierung eines hohlen Dreieckpfeils und eines X-Symbols mit anschließendem Pseudoelement

>>:  Vergleichstabelle chinesischer und englischer Schriftnamen (einschließlich Founder und Arphic)

Artikel empfehlen

Beispiel für das Hinzufügen eines Musikvideos zu einer HTML-Seite

1. Video-Tag Unterstützt die automatische Wiederg...

Implementierung der K8S-Bereitstellung eines Docker-Containers

Umgebung: (Docker, K8s-Cluster), fahren Sie mit d...

Grundlegende Verwendung der JS-Datumssteuerung My97DatePicker

My97DatePicker ist ein sehr flexibles und benutze...

Zusammenfassung der in MySQL häufig verwendeten Verkettungsanweisungen

Vorwort: In MySQL wird die Funktion CONCAT() verw...

Flex-Anordnung in CSS darstellen (Layouttool)

In Bezug auf die Anzeige: flexibles Layout: Manch...

CSS erreicht hochadaptiven Vollbildmodus

Beim Schreiben meiner eigenen Demo möchte ich dis...

18 Web-Usability-Prinzipien, die Sie kennen müssen

Sie können über die besten visuellen Designfähigk...

Eine Aufzeichnung der Fallstricke des Lebenszyklus von WeChat-Applet-Komponenten

Der Komponentenlebenszyklus ist normalerweise der...

Analyse des Prinzips von Vue nextTick

Inhaltsverzeichnis Ereignisschleife miscroTask (M...