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

So fügen Sie einem Alpine-Image einen Ansible-Dienst hinzu

Verwenden Sie apk add ansible, um den Ansible-Die...

Implementierung des Vue-Top-Tags-Browserverlaufs

Inhaltsverzeichnis Unsinn Implementierte Funktion...

Detaillierte Erläuterung der MySQL-Fremdschlüsseleinschränkungen

Amtliche Dokumentation: https://dev.mysql.com/doc...

So verwenden Sie Docker zum Bereitstellen eines Django-Technologie-Stack-Projekts

Mit der Popularität und Reife von Docker ist es a...

So installieren Sie die PHP7 Redis-Erweiterung auf CentOS7

Einführung Im vorherigen Artikel haben wir Redis ...

Vue verwendet Canvas, um den Bildkomprimierungs-Upload zu realisieren

In diesem Artikel wird der spezifische Code von V...

So ändern Sie die Kodierung der MySQL-Datenbank in utf8mb4

Die utf8mb4-Kodierung ist eine Obermenge der utf8...

Verwendung des optionalen Verkettungsoperators von JS

Vorwort Der optionale Verkettungsoperator (?.) er...

Eine kurze Diskussion über den Unterschied zwischen src und href in HTML

Einfach ausgedrückt bedeutet src „Ich möchte dies...

Vue-Projekt @change mehrere Parameter, um mehrere Ereignisse zu übergeben

Erstens gibt es nur ein Änderungsereignis. change...

React-Internationalisierung – Verwendung von react-intl

Wie erreicht man Internationalisierung in React? ...