typescript化したnodeアプリのホットリロードで若干ハマった
環境
- node
- express
- nodemon
- typescript
もともとは上の3つで動かしてた。
package.jsonのscriptsはこんな感じ。
"scripts": {
"dev": "env-cmd nodemon index.js",
...
yarn dev
でアプリ起動。
Typescript化後のホットリロードのやり方(成功パターン)
ts-nodeなかったら追加。
yarn add -D ts-node
nodemon.json
を作成。
{
"watch": [""], // 監視ディレクトリを指定
"ext": "ts", // 監視ファイルの拡張子
"exec": "ts-node --files ./index.ts"
}
以上。
yarn dev
でアプリ起動すれば従来通りホットリロードされる。
Typescript化してハマった箇所
nodemon.json
のexecコマンドの --files
を指定してなかった。
すると 型定義ファイルが見つからんなどのエラーが。
/hoge/node_modules/ts-node/src/index.ts:859
return new TSError(diagnosticText, diagnosticCodes, diagnostics);
^
TSError: ⨯ Unable to compile TypeScript:
index.ts:206:16 - error TS2304: Cannot find name 'HogeType'.
...
頑張ってtsconfig.json
に色々書き足したが全く解決しなかった。
"lib": ["es6", "dom"],
"paths": {
"*": ["./@types/*"]
},
"typeRoots": ["./@types"],
"types": ["node"],
--filesを忘れずに指定しよう
以上。