4
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 3 years have passed since last update.

【実践】VSCodeでサーバ上のWEBアプリをリモートデバッグする(第1回:JavaScript編)

Posted at

第1回はVSCode(Visual Studio Code)からサーバ上のWEBアプリを直接編集できる環境構築とJavaScriptのデバッグを行う。

#やりたいことイメージ

構成図-crop.png

WS000028.JPG

#使用するもの
ローカルホストPCにはWindows10、WEBサーバには試験機として最適なオンプレミス型の
WeBBoXを使用する。

ローカルホストPC

● VSCode + 拡張機能
    ・ Remote Development
    ・ Debugger for Chrome
● ブラウザ(Chrome)
● FTPクライアントアプリ(ffftpなど)

####WEBサーバ
● HTTPサーバ
● FTPサーバ
● FILEサーバ
● SSHサーバ

####サンプルソース

index.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Hello WeBBoX</title>
    <link rel="stylesheet" href="sample.css">
  </head>
  <body>
    <p class="title">Hello WeBBoX !</p>
    <div id="area1">
      <button type="button" id="btn1">今日は何日ですか?</button>
      <br>
      <input type="text" id="tBox" class="font-main" />
    </div>
    <script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    <script type="text/javascript" src="sample.js"></script>
  </body>
</html>
sample.css
.font-main {
  padding: 2px;
}

#btn1 {
  margin-bottom: 4px;
}
sample.js
$("#btn1").on("click", function()  {
  let date = new Date();
  let year = date.getFullYear();
  let month = date.getMonth() + 1;
  let day = date.getDate();
  let message = `今日は${year}${month}${day}日です`
  $("#tBox").val(message);
});

上記ソースファイル3本をコピー&ペーストして作成する。

#準備
###ローカルホストPC側の準備
####1.VSCodeのインストール
MicrosoftのVisual Studio Codeサイトからダウンロードしてインストールする。

インストールはデフォルト設定のままで構わない。

インストールが完了すると日本語表示を行うための言語パックのインストール問い合わせが表示されるので「インストールして再起動」をクリックする。
WS000003.JPG

####2.VSCodeに拡張機能『Remote Development』インストール
左端のアクティビティバーにある「拡張機能」アイコンをクリックし、検索枠に"remote"と入力
WS000005.JPG
検索結果が表示されるので、「Remote Development」を選択してインストールする。
WS000006.JPG
Remote Developmentに関連する拡張機能も自動でインストールされる。
WS000007.JPG

####3.VSCodeに拡張機能『Debugger for Chrome』インストール
続けて、検索枠に"debugger for"と入力
WS000008.JPG
検索結果が表示されるので、「Debugger for Chrome」を選択してインストールする。
WS000009.JPG

※ブラウザアプリChrome、FTPクライアントアプリのインストールに関する説明は割愛します。

以上でローカルホストPC側の準備は完了です。

###WEBサーバ側の準備
####1.IPアドレスを固定値に設定
WEBサーバのIPアドレスは固定値にする必要があります。
本記事では「192.168.0.203」と設定しました。

IPアドレスはネットワーク環境に合わせて変更してください。

####2.サンプルソースをWEBコンテンツフォルダーへコピー
サンプルソース3本をWEBサーバのWEBコンテンツフォルダーにFTPクライアントアプリを使ってコピーする。
本記事では「/var/www/html/sample2/」としました。

/var/www/html/sample2/index.html
/var/www/html/sample2/sample.css
/var/www/html/sample2/sample.js

以上でWEBサーバ側の準備は完了です。

#サーバ上のWEBアプリを直接編集できるようにVSCodeを設定する
ローカルホストPC、WEBサーバの準備が完了したので、ここからはVSCodeからサーバ上のWEBアプリ(サンプルソースファイル)を直接編集できる環境を設定する。
作業はすべてVSCodeにて行う。

####1.VSCodeとWEBサーバを接続する

①左端のアクティビティバーにある「リモートエクスプローラー」アイコンをクリック
②「SSH Targets」を選択
③「Add New」アイコンをクリック
WS000040.JPG

「Enter SSH Connection Command」に SSHログインユーザ名@WEBサーバIPアドレスを入力

ssh user@192.168.0.203

WS000041.JPG

「Select SSH Configuration file to update」に "C:\Users\xxx\.ssh\config"を選択

C:\Users\xxx\.ssh\config

WS000042.JPG

サイドバーに表示されたWEBサーバIPアドレスを選択し、「Connect to Host in New Window」アイコンをクリック
WS000044.JPG

「Are you sure you want to continue?」に"Continue"を選択
WS000046.JPG

SSHログインパスワードを入力
WS000047.JPG

####2.WEBサーバ上のコンテンツフォルダーを開く

ステータスバーが接続状態に変化したら、アクティビティバーにある「エクスプローラー」アイコンをクリックし、「フォルダーを開く」をクリック
WS000049.JPG

サンプルソースをコピーしたWEBコンテンツフォルダーを指定し、「OK」をクリック

/var/www/html/sample2/

WS000018.JPG

SSHログインパスワードを入力
WS000019.JPG

「このフォルダー内の・・・」ダイアログが表示されたら「信頼します」を選択
WS000020.JPG

サイドバーにコンテンツフォルダーのファイルツリーが表示され、エディター領域にはソースコードが表示される。
WS000022.JPG

ここまでの作業でローカルホストPC内に以下のファイルが作成される。

/user/xxx/.ssh/config
Host 192.168.0.203
  HostName 192.168.0.203
  User user
/user/xxx/.ssh/known_hosts
192.168.0.203 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPxNmcu0BZDmnl8wei1cHguZSWnycRDIY1kPoGjyxobtKBY8UxOxMfx/osveg+in/reEMnNTtazqd2GrxtR3uxo=

以上で、VSCodeからサーバ上のWEBアプリ(サンプルソースファイル)を直接編集できる設定作業は完了です。

次はいよいよJavaScriptのリモートデバッグを行います。

#JavaScriptのリモートデバッグ

JavaScriptのサンプルソースsample.jsをリモートデバッグする。

####1.デバッグの設定ファイルlaunch.jsonの内容確認
①左端のアクティビティバーにある「実行とデバッグ」アイコンをクリック
②「Launch Chrome against website」を選択し、「launch.jsonを開く」アイコンをクリック
③表示されたlaunch.jsonの内容を確認する
WS000025.JPG

/var/www/html/sample2/.vscode/launch.json
{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "pwa-chrome",
            "request": "launch",
            "name": "Launch Chrome against website",
            "url": "http://192.168.0.203/sample2/index.html",
            "webRoot": "${workspaceFolder}/",
            "sourceMaps": true
        }
    ]
}

launch.jsonの内容にミスがあると正常にデバッグができません。
よく確認してください。

確認ができたら「F5」キーでデバッグを開始する。

####2.ブラウザChromeが起動されindex.htmlが表示される
WS000027.JPG

####3.sample.jsにブレークポイントを設定
WS000026.JPG

####4.ブラウザに表示されている「今日は何日ですか?」クリック
WS000027.JPG

####5.ブレークポイントで停止
WS000028.JPG

####6.ステップ実行、変数確認
WS000029.JPG
WS000030.JPG

####デバッグ完了です。お疲れさまでした。

#あとがき
JavaScriptはローカルホストPCのブラウザ上で動作するので『リモートデバッグ』とは言えないかもしれませんね。。。
次回はサーバサイドで動作する言語のリモートデバッグにします。

#参考サイト
コンパクトなのに高機能 超小型のWEBサーバ『WeBBoX』
https://www.offset.co.jp/webbox/index.html

#次回予告
PHPのリモートデバッグを行うための環境構築とサンプルソースを使ったデバッグを予定しています。

4
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
4
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?