サーバで、foreverをグローバルでインストールしコマンドラインから使える様にする。
$ npm install forever -g
$ forever --version
v3.0.0
デバッグの準備
$ cd {node.jsアプリのフォルダ}
$ forever -c 'node --inspect=0.0.0.0:9229' app.js
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
Debugger listening on ws://0.0.0.0:9229/ad7164d6-5cb7-43bb-9585-7c95c6d24e28
For help, see: https://nodejs.org/en/docs/inspector
アプリがlisenに成功したら標準出力に
app listening on port http://{サーバー名}:{ポート} !
と表示させると便利。
Visual Studio Code の方の「実行」⇒「構成の追加」から
{} Node.js :Attach to remote program を選択し
lanuch.jsに追加されたブロックに
”address”: {サーバ名}
”port”: 9229
と編集して、【実行】すると、
(node:22749) [INSPECTOR_ASYNC_STACK_TRACES_NOT_AVAILABLE] Warning: Warning: Async stack traces in debugger are not available on 32bit platforms. The feature is disabled.
と出てくるので、lanuch.jsのAttach to remote programに設定を追加。
"showAsyncStacks": false
適当にソースでブレークポイントも追加しても〇になるので無効。
しかし、アプリの出力はサーバーのコンソールとデバッグコンソールの両方に表示され、VSCから再起動も出来る。
デバッグコンソールに何故かconsole.logしたソースのリンクが貼ってある。
これをクリックするとデバッグ中のプロセスと連携しているソースが表示されるので、ブレークポイントを設定できる。
しかし、次にその場所に来た場合に一時停止になる仕組みなので、
事前にブレークポイントを設定して実行!という訳にはいかないが、大抵のことはコレで十分だろう。
VSCからまだコミットが出来ないので git push も変だ。
OpenSSH Authentication Agent
を自動起動
> ssh-agent
> ssh-add
Enter passphrase for C:\Users\***/.ssh/id_rsa: {パスワード}
Identity added: C:\Users\***/.ssh/id_rsa (***@********)
まですると、コマンドラインからは git pushできる。
VSCは待機中になってしまう。