TypeScriptファイル変更時にts-nodeを自動リロードする方法
TypeScriptファイルの変更時にts-nodeを監視してリロードする方法
TypeScriptで開発を行う際、ファイルに変更を加えるたびにts-nodeを再起動するのは面倒です。そこで、ファイル変更を監視し自動的にts-nodeをリロードするツールnodemonを使うと効率的に開発を進めることができます。
nodemonを使うには、まずプロジェクトルートにnodemon.json
ファイルを作成し、以下の設定を記述します。
{
"watch": ["src/**/*.ts"],
"exec": "ts-node src/index.ts",
"ignore": ["node_modules/**", ".git/**"],
"delay": 1000,
}
watch
: 監視対象となるファイルパスを指定します。ここではsrc
ディレクトリ以下のすべての.ts
ファイルを監視しています。exec
: ts-nodeを実行するコマンドを指定します。ここではsrc/index.ts
ファイルを起動しています。ignore
: 監視対象から除外するファイルパスを指定します。ここではnode_modules
ディレクトリと.git
ディレクトリを無視しています。delay
: ファイル変更検知後のリロード待ち時間をミリ秒単位で指定します。ここでは1秒後にリロードするように設定しています。
実行
nodemonをインストールし、nodemon.json
ファイルと同じディレクトリで以下のコマンドを実行します。
npx nodemon
nodemonが起動し、ファイル変更を監視し始めます。ファイルに変更を加えると、設定された待ち時間後にts-nodeが自動的にリロードされます。
補足
nodemon
はnpm install --global nodemon
でインストールできます。
nodemon以外にも、chokidarやwatchmanなどのライブラリを使ってファイル変更を監視し、ts-nodeをリロードすることができます。
nodemonを使うことで、TypeScriptファイルの変更を監視し自動的にts-nodeをリロードすることができます。これにより、開発効率を大幅に向上させることができます。
// src/index.ts
// ここにコードを記述
console.log("Hello, world!");
ファイルに変更を加えると、nodemonが自動的にts-nodeをリロードし、変更内容が反映されます。
他の方法
chokidarは、Node.js用のファイル監視ライブラリです。nodemonよりも軽量で、さまざまな設定オプションがあります。
// ここにコードを記述
import chokidar from "chokidar";
chokidar.watch("src/**/*.ts", {
ignored: ["node_modules/**", ".git/**"],
}).on("change", () => {
console.log("ファイルが変更されました");
// ts-nodeをリロードする処理
});
watchmanは、Facebookが開発したファイル監視ツールです。chokidarよりも高速で、大規模なプロジェクトに適しています。
// ここにコードを記述
import watchman from "watchman";
watchman.watch("src", {
ignore: ["node_modules", ".git"],
}).on("change", (files) => {
console.log("ファイルが変更されました");
// ts-nodeをリロードする処理
});
これらの方法は、それぞれ異なる特徴を持っています。プロジェクトの規模や要件に合わせて、最適な方法を選択してください。
typescript development-environment nodemon