nodejs + koa + typescript の統合と自動再起動に関する問題

nodejs + koa + typescript の統合と自動再起動に関する問題

バージョンノート

Node.js: 16.13.1

プロジェクトを作成する

次のディレクトリ構造を作成します

プロジェクト
├── 出典
│ └── server.ts
├── package.json
└── tsconfig.json

package.json yarn init -yを使用して生成できます。
tsconfig.json tsc --initを使用して生成できます ( tscコマンドを使用するには、 typescriptパッケージをグローバルまたはプロジェクトにインストールする必要があります)

依存関係をインストールする

知らせ:

  • @tsconfig/node16パッケージは、 Node.jsのバージョンに応じて変更する必要があります。私のコンピュータにインストールされているバージョンは16.xxなので、 @tsconfig/node16を使用します。詳細については、 tsconfig/bases の説明を参照してください。もちろん、このパッケージをインストールする必要はありません。このパッケージの利点は、公開されており、主流の推奨構成であることです。
  • typescriptがグローバルにインストールされている場合は、以下のコマンドから削除します。
  • 同時実行は複数のコマンドを同時に実行するためのツールキットです
  • nodemonはファイルの変更を監視し、プログラムを自動的に再起動するツールキットです。
糸 コアを追加
yarn を typescript に追加します @tsconfig/node16 @types/node @types/koa 同時に nodemon -D

コンテンツの記入

src/server.ts

'koa' から Koa をインポートします。

const サーバー: Koa = new Koa();
定数ポート: 番号 = 3000;

server.use((ctx: Koa.DefaultContext) => {
    ctx.body = 'こんにちは、コア';
});

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

tsconfig.json

注: extendsフィールドの値は@tsconfig/node**インストールしたパッケージ名に応じて置き換えられます。

{
  "拡張": "@tsconfig/node16/tsconfig.json",
  "コンパイラオプション": {
    "ベースURL": ".",
    "ルートディレクトリ": "src",
    "outDir": "dist",
    "noImplicitAny": true、
  },
  "含む": [
    "ソース/**/*"
  ]
}

パッケージ.json

「スクリプト」: {
  "ビルド-ts": "tsc",
  "ビルド": "yarn build-ts",
  "デバッグ": "yarn ビルド && yarn watch-debug",
  "serve-debug": "nodemon --inspect dist/server.js",
  "サーブ": "ノードdist/server.js",
  「開始」: 「ヤーンサーブ」、
  "watch-debug": "同時に -k -p \"[{name}]\" -n \"TypeScript,Node\" -c \"yellow.bold,cyan.bold,green.bold\" \"npm:watch-ts\" \"npm:serve-debug\"",
  "ウォッチノード": "nodemon dist/server.js",
  "ウォッチ-ts": "tsc -w",
  "watch": "同時に -k -p \"[{name}]\" -n \"TypeScript、Node\" -c \"yellow.bold、cyan.bold、green.bold\" \"npm:watch-ts\" \"npm:watch-node\""
}

走る

すべてのソースコードはsrcディレクトリにあり、 tscによってコンパイルされたjsファイルはtsconfig.jsonファイルで指定されたパスであるdistディレクトリにあります。

ローカル開発: distディレクトリがない場合は、 yarn buildを実行してコンパイルおよび生成し、 yarn watchを実行する必要があります。

デプロイメントプロダクション: yarn buildyarn serve 、またはyarn startを順番に実行します (serve と start は同じコマンドです)

参考文献

microsoft/TypeScript-Node-Starter

これで、nodejs + koa + typescript の統合と自動再起動に関するこの記事は終了です。関連する nodejs koa typescript コンテンツの詳細については、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援してください。

以下もご興味があるかもしれません:
  • nodejs+koa2はspringMVCフレームワークの模倣を実装します
  • Koa (nodejs フレームワーク) に基づいて json ファイルを追加、削除、変更、およびチェックするためのサンプル コード
  • koa-log4 を使用して nodeJs ログ ノートを管理する方法
  • Typescript nodejs 依存性注入実装コードの詳細な説明

<<:  after疑似要素を使用して中空の三角矢印とXアイコンを実装する例

>>:  中国語と英語のフォント名の比較表(FounderとArphicを含む)

推薦する

MySQLがlocalhost経由でデータベースに接続できない問題に対する完璧な解決策

問題:あるサーバー上の PHP プログラムは、localhost アドレス経由でデータベースに接続で...

Vue組み込みコンポーネントのキープアライブの使用例

目次1. キープアライブの使用使用例: 1. すべてのページをキャッシュする: 2. 条件に基づいて...

擬似静的およびクライアント適応型 Nginx の設定方法

バックエンドは thinkphp3.2.3 フレームワークを使用します。他の言語を使用している場合は...

CSS3 はアニメーション属性を使用してクールな効果を実現します (推奨)

animation-name アニメーション名。複数のアニメーションがバインドされていることを示す...

js 学習ノート: class、super、extends キーワード

目次序文1. es6の前にオブジェクトを作成する2. es6 後のクラス宣言3. クラスの継承4. ...

Vue+Router+Element でシンプルなナビゲーションバーを実装する

このプロジェクトでは、Vue+Router+Element の具体的なコードを共有して、シンプルなナ...

イントラネット侵入を実現するためのSSHポート転送

LAN 内のマシンは外部ネットワークにアクセスできますが、外部ネットワークは内部ネットワークにアクセ...

mysql5.7.21.zip インストールチュートリアル

mysql5.7.21 zipの詳細なインストール手順は次のとおりです。 1. 解凍して指定されたデ...

Vue SPA ファースト スクリーン最適化ソリューション

目次序文最適化ソ連オンデマンドインポート1. ルーティングファイルでコンポーネントをオンデマンドでイ...

Linux または Android でファイル システムを追加する属性インターフェイスを解析する方法

最初のもの: 1. 主要なヘッダーファイルを追加します。 #include <linux/of...

MySQLでテーブルデータを削除する方法

MySQL でデータを削除する方法は 2 つあります。1 つは DELETE ステートメント、もう ...

HTMLの基礎 HTMLの構造

HTML ファイルとは何ですか? HTML は Hyper Text Markup Language...

HTML の一般的でないタグ optgroup、sub、sup、bdo のサンプルコード

Optgroup は、ドロップダウン リストのコンテンツをより整理するために、select タグで使...