25
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Express.js(Typescript), Node.js をホットリロードしながら開発する2つの方法

Last updated at Posted at 2019-04-27

目的

  • Express.js(Typescript) や Node.js の開発を進めていく上で、コード変更を検知してホットリロードする方法2つを紹介します。
  • 最後の方で、どちらを使ったほうがいいか書いてあるので、参考にしてみてください。

環境

  • Node: v10.15.2
    • nodeenvを利用し、プロジェクトごとにバージョンを指定することがおすすめです。

利用するパッケージ

1. ts-node-dev

公式リファレンス

github

使用方法

1. packageをinstall


$ yarn add --dev ts-node-dev

2. 設定ファイルを作成(任意)

  • 作成しなくてもいいですが、リロードするために通知がきてしまう設定はOFFにしておくことをおすすめします。

$ touch .node-dev.json
  • 中身
{
  "notify": false // これがないとコード変更するだけで通知がくるので、設定しておくことがおすすめです
}

3. アプリ実行コマンド



$  ts-node-dev [your node app]

2. nodemon

公式リファレンス

github

使用方法

1. packageをinstall


$ yarn add --dev nodemon

2. 設定ファイルを作成

  • プロジェクトのルートディレクトリに作成します

$ touch .nodemon.json

中身

{
    "watch": ["./src"], // watchするディレクトリを指定
    "ext": "ts,json", // watchするファイルの拡張子を指定(カンマ区切りで複数選択可能)
    "exec": "ts-node src/index.ts" // ファイルが変更された時に実行するコマンド
}

3. アプリ実行コマンド


$ nodemon [your node app]

どちらを利用すべきか

  • ts-node-devのほうがリロード処理が圧倒的に早かったので、ts-node-devを利用することを勧めます。
    • 毎回ts-nodeコンパイルを実行する必要がない分、nodemonより早くリロードを行うことができます。

公式ドキュメントより抜粋

This significantly increases speed of restarting comparing to node-dev -r ts-node/register ..., nodemon -x ts-node ... variations because there is no need to instantiate ts-node compilation each time.

  • ただ、記事執筆時(2019/04)にGithubをみる限り、スターの数はnodemonのほうが多く、開発も継続的に行われています。また、どちらも簡単な設定で使用することができるので、実際に両方試したりドキュメントを読んだりして、自分に合っているほうを見つけてみるのでもいいと思います。
25
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?