nodemon を GraphQL サーバーの開発に利用するための設定
TweetGraphQL に限らず、Node アプリケーションを作成する際に、役に立つ nodemon の、特に GraphQL を開発する際に便利な設定を紹介します。
ドキュメントより nodemon の概要
nodemon は、Node.js ベースのアプリケーション開発を手助けします。ディレクトリ内のファイル変更を検知し、Node.js アプリケーションを再起動します。
nodemon is a tool that helps develop node.js based applications by automatically restarting the node application when file changes in the directory are detected.
nodemon を使用するために開発中のコードやメソッドを変更する必要は「ありません」。nodemon は node を置き換えるラッパーですので、nodemon を使うためには、スクリプトを実行するコマンドライン中の node
という単語を nodemon
に置き換えるだけです。
nodemon does not require any additional changes to your code or method of development. nodemon is a replacement wrapper for node, to use nodemon replace the word node on the command line when executing your script.
ということで
npm script 内で node index.js
とかって書くところを nodemon index.js
って置き換えるだけでつかえるってことですね。さらに開発ディレクトリ内にあるファイルが変更された時に (デフォルトでは .js, .mjs, .coffee, .litcoffee, .json を見てるとのこと) 、このスクリプトを再実行してくれるわけです。ファイルを書き換えるたびに、node index.js
って実行するのは面倒ですからね。
使い方
yarn add nodemon
してインストールして、あとは npm script に nodemon
込みでスクリプトを書くわけですが、一点オススメの設定があります。
実行する際に -e
でオプショナルな設定をします。-e
の後ろに拡張子を書くと、その拡張子だけを監視の対象にします。ので、デフォルトの設定でもいいですけど、明確に監視してほしいファイルが決まっている場合には、こうしたほうがいいですね。
特に、今回は .graphql
を使っていくのでこれを対象に入れる必要があります。
{
"name": "qraph-ql",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"nodemon": "^1.18.7"
},
"scripts": {
"start": "nodemon index.js -e js, json, graphql"
}
}
あとは yarn run start
で実行すれば nodemon
が index.js
を実行し、さらに js, json, graphql
拡張子を監視して、 index.js
を再起動してくれます。便利。