Node.js × TypeScript × nodemonでホットリロード対応の環境構築
1. プロジェクトの作成
mkdir <PROJECT_NAME>cd <PROJECT_NAME>npm initentry point: (index.js) dist/index.js色々問われるがentry pointだけはdist/index.jsを指定し、それ以外の項目は任意の値を入力する。
2. ライブラリのインストール
npm i --save-dev typescript ts-node nodemon @types/node3. nodemonの設定
"scripts": { "dev": "nodemon --watch src/**/*.ts --exec ts-node src/index.ts", "build": "tsc"}nodemon.jsonをルート配下に作成する方法もあるが、npm scriptsの情報は1箇所にまとめておきたいのでpackage.jsonに追記する。
4. tsconfig.jsonの作成
touch tsconfig.json{ "compilerOptions": { "module": "commonjs", "target": "ES2021", "strict": true, "declaration": true, "incremental": true, "allowSyntheticDefaultImports": true, "sourceMap": true, "removeComments": true, "noImplicitAny": false, "outDir": "dist" }}諸々俺俺ルールが入っているが、 "outDir": "dist"さえ指定できてさえいれば問題ない。
5. nodemonの監視を開始
mkdir srctouch src/index.tsまずサンプルファイルを作成しておく。
npm run dev[nodemon] 3.0.1[nodemon] to restart at any time, enter `rs`[nodemon] watching path(s): src/**/*.ts[nodemon] watching extensions: ts,json[nodemon] starting `ts-node src/index.ts`[nodemon] clean exit - waiting for changes before restart6. TypeScriptのコードを編集
console.log('This is a test.');適当なコードを追記し保存する。
[nodemon] clean exit - waiting for changes before restart[nodemon] restarting due to changes...[nodemon] starting `ts-node src/index.ts`This is a test.するとnodemonが変更を検知し、index.tsの中身が無事実行された。
もしコンパイルしたい時はnpm run buildを叩くとdist下にjsファイルが生成される。
参考