LoginSignup
5
8

More than 3 years have passed since last update.

Node + TypeScriptの複数の実行方法(node, ts-node, nodemon, pm2)

Last updated at Posted at 2020-05-04

プライベート開発時に使うmicrosoft/TypeScript-Node-Starterの開発環境がwatchなどあり快適。
社内の開発環境もその水準にするために調べた際のメモです。

nodeコマンドで実行する

tscでトランスパイルして、nodeコマンドで実行します。

tsc
node dist/app.js

プロセスを確認

xxx     20864   0.0  0.4  4594780  67820 s004  S+    6:38PM   0:00.21 node /usr/local/Cellar/yarn/1.17.3/libexec/bin/yarn.js start

ts-node

tsc + nodeのハッピーセット :fries: :hamburger:

ts-node src/app.ts

プロセスを確認

xxx     23344   0.0  0.8  4637472 140320 s004  S+   11:23PM   0:03.45 node /usr/local/bin/ts-node --files src/server.ts

nodemon

node.jsアプリケーションの変更を監視し、サーバーを自動的に再起動します。開発に最適です。

最初はプロセス管理のモジュールだと思ってたのですが、開発用のファイル監視&再起動モジュールだったようです。

プロセスを確認

ps aux | grep nodemon
xxx     22182   0.0  0.2  4560652  30024 s004  S+    9:19PM   0:00.18 /usr/local/bin/node /Users/xxx/works/tsoa-project/node_modules/.bin/nodemon

pm2

PM2 は、ロード・バランサーが組み込まれた、Node.js アプリケーション用の実動プロセス・マネージャーです。PM2 では、アプリケーションの稼働を永続的に維持して、ダウン時間を発生させずに再ロードすることができる。

pm2でトランスパイルを使うことができるが、本番環境では非推奨とのことです。
PM2 - Transpilers | Integration | PM2 Documentation

pm2コマンドだけでts-nodeの代わりにもなり、watchオプションを使えばnodemonの代わりとしても使えます。(watchの設定はnodemonのほうが使いやすかった)

プロセスを確認

ps aux | grep pm2
xxx      1594   0.0  0.4  4614480  59928   ??  Ss    2:56PM   0:04.33 PM2 v4.4.0: God Daemon (/Users/xxx/.pm2) 

God Daemon(神)

まとめ

コマンド 役割
tsc TypeScriptをJavaScriptにトランスパイル
ts-node TypeScriptを直接実行
nodemon ファイル監視、再実行
pm2 プロセス永続化、ファイル監視

開発時の実行環境は tsc -w + nodemon または ts-node + nodemon がよさげ。
本番のプロセス管理にはpm2やfoeverなどを使う。

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