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

Detaillierte Diskussion der Unterschiede zwischen Schleifen in JavaScript

Inhaltsverzeichnis Vorwort Aufzählbare Eigenschaf...

17 404-Seiten, die Sie erleben möchten

Wie können wir sagen, dass wir 404 vermeiden soll...

Analyse der Prinzipien und Verwendung von Linux-Hardlinks und Softlinks

Im Linux-System gibt es einen Dateityp namens Lin...

Details zu benutzerdefinierten Vue3-Anweisungen

Inhaltsverzeichnis 1. Benutzerdefinierte Anweisun...

Lösung für das Problem der langsamen Docker-Pull-Image-Geschwindigkeit

Derzeit verfügt Docker über einen offiziellen Mir...

Kurze Analyse von CentOS 7 mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar

Baidu Cloud-Festplatte: Link: https://pan.baidu.c...

Implementierung von zwei Basis-Images für die Docker-Bereitstellung von Go

1. golang:neuestes Basis-Image mkdir gotest Berüh...

【HTML-Element】So betten Sie Bilder ein

Mit dem img-Element können wir Bilder in HTML-Dok...

Detaillierte Erläuterung der Js-Klassenkonstruktion und Vererbungsfälle

Die Definition und Vererbung von Klassen in JS si...

Einige Dinge, die Sie über den Varchar-Typ in MySQL wissen sollten

Speicherregeln für varchar In Versionen unter 4.0...

Analyse des Quellcodes des React-Ereignismechanismus

Inhaltsverzeichnis Prinzip Quellcodeanalyse Deleg...

Schauen wir uns einige leistungsstarke Operatoren in JavaScript an

Inhaltsverzeichnis Vorwort 1. Null-Koaleszenzoper...