nodemonのcrossOS設定


nodemonとは

他力本願

問題

nodemonを利用してexpressを立ち上げようとしていました。

私のPCはmacOSでしたが、チームメンバーのWindows端末で同じように立ち上げようとしたところ、以下のようにJSONのSyntaxErrorが出てしまいました。

SyntaxError: Unexpected token ' in JSON at position 0

nodemon.jsonの以下の部分が正常に読み込まれないようです。

nodemon.json
{
  "watch": ["server"],
  "ext": "ts",
  "exec": "exec": "ts-node -O '{\"module\": \"commonjs\"}' server/server.ts"" //ここがうまく読み込めない。
}

Windowsはシングルクォーテーション、ダブルクォーテーションの扱いが難しい気がする。

解決策

ぐぐって見つける。
https://github.com/TypeStrong/ts-node/issues/606

cross-envを利用します。こちらの内容についても他力本願

Nuxtでcross-envを使い環境ごとに環境変数を分ける

corss-envの導入

npm install --save-dev cross-env

nodemon.jsonの編集

issueに記載されている通り、execスクリプトを編集します。

nodemon.json
{
  "watch": ["server"],
  "ext": "ts",
  "exec": "cross-env TS_NODE_COMPILER_OPTIONS={\\\"module\\\":\\\"commonjs\\\"} ts-node server/server.ts" 
}

結果

mac・Windows共に動作確認できました。

引用元の皆様ありがとうございました。