私は現在Express.jsでNode.jsをプログラミングしています。ファイルルーターまたはアプリでコード行を変更するたびに、次のコマンドを入力する必要があります。
pm2 reload id_project.
ファイルが変更されたときにpm2にプロジェクトを自動再読み込みさせるにはどうすればよいですか?
デフォルトでは、ノードはファイルを変更するたびにサーバーを自動的に更新しません。特定のpm2ソリューションについてはわかりませんが、nodemonでそれを行うことができます。次のようにインストールするだけです:npm install -g nodemon
と使用:nodemon server.js
。
個人的には、@ rogier-spiekerの回答で受け入れられた回答が得られるようです。 (この回答が承認されている限り、削除することもできません)
pm2
プロジェクトを--watch
オプションで開始する必要があります。
pm2 start <script|name|id> --watch
ここで、<script|name|id>
は以下を参照します。
script
pm2に処理させたい script へのパスname
"ecosystem"ファイル内の構成の名前id
は、 pm2 list
を使用して取得できるpm2を使用してすでに実行されているアプリケーションを参照します(これには実際にはrestart
ではなくstart
が必要になるため、おそらく最小です望ましいオプション)無視するファイル/ディレクトリを指定することもできます:
pm2 start <script> --watch --ignore-watch "node_modules"
または、pm2
でプロジェクトをどのように処理するかを記述した「ecosystem」jsonファイルを作成します。
{
"name": "project_name",
"script": "index.js",
"watch": true,
"ignore_watch": ["node_modules"]
}
PM2には便利な 開発ツール が付属しており、アプリケーションを起動して、ファイルの変更時にアプリケーションを再起動できます。
# Start your application in development mode
# it print the logs and restart on file change too
# Two way of running your application :
pm2-dev start my-app.js
# or
pm2-dev my-app.js
pm2はNode多くのベルとホイッスルを備えたプロセスマネージャです。以下のコマンドを実行して、ディレクトリ内のファイルの変更が検出されたときにノードアプリケーションを自動的に再起動できます。
pm2 start index.js --watch
Pm2はバックグラウンドで処理を実行するため、ctrl+c
実行中のpm2プロセスから抜け出す方法。 IDまたは名前を渡すことで停止する必要があります。
pm2 stop 0
pm2 stop index
他の2つのオプションは以下のとおりです
npx supervisor index.js
nodemon index.js