5
0

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 1 year has passed since last update.

dockerコンテナ内でts-node-devのホットリロードを有効にする

Last updated at Posted at 2021-04-07

環境
windows10
Docker Toolbox

結論

dockerコンテナ内でts-node-devのホットリロードを有効にするためには --poll オプションを付ける必要がある。

$ ts-node-dev --poll ./src/bin/www.ts

(起動用のファイルbin/www.tsへのパスはディレクトリ構成に応じて書き換えてください。拡張子.tsは省略可)

もう少し詳しく

dockerのNode.jsコンテナ内で、アプリケーションの雛形をexpress-generatorで作りTypeScriptに書き換えた。
開発時にコードを書き換えるたびTSからJSにコンパイルし再起動するのは面倒。
ts-node-devをつかうとコンパイルせずにTSのまま直接起動し、コードを変更したときには再起動してくれる。

ts-node-devをインストールする

$ yarn add -D ts-node-dev

スクリプトを追加する

package.json
"scripts": {
    "dev": "ts-node-dev ./src/bin/www.ts" // .tsは省略可
 }

ts-node-devで起動する

$ yarn dev

起動したが、コードを変更しても再起動されない。

スクリプトに--pollオプションを追記する

package.json
"scripts": {
    "dev": "ts-node-dev --poll ./src/bin/www.ts"
 }

再びyarn devで起動後、コードを変更してみると再起動され、変更内容が反映されていた。

もしかしたら

docker Toolbox ではなく docker Desktop をつかえば--pollオプションがなくてもホットリロードされるのかも?

追記:
docker Desktopでも--pollオプションが必要でした

5
0
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
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?