Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9021

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

$
0
0

プライベート開発時に使う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(神)

まとめ

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

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


Viewing all articles
Browse latest Browse all 9021

Trending Articles