Visual Studio CodeでVue.jsのデバッグを行う方法

Visual Studio CodeでVue.jsのデバッグを行う方法をご紹介します。

環境

  • node.js v14.17.0
  • npm 6.14.13
  • @vue/cli 4.5.13
  • Windows 10
  • Chrome

事前準備

拡張機能

Visual Studio Codeの拡張機能で、「Debugger for Chrome」をインストールします。

プロジェクトの作成

ターミナルでコマンドを実行し、適当なプロジェクトを作成します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> vue create test_vue
> vue create test_vue
> vue create test_vue

プリセットの指定

とりあえず動けばよいので、Default (Vue 3)を選択します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Vue CLI v4.5.13
? Please pick a preset:
Default ([Vue 2] babel, eslint)
> Default (Vue 3) ([Vue 3] babel, eslint)
Manually select features
Vue CLI v4.5.13 ? Please pick a preset: Default ([Vue 2] babel, eslint) > Default (Vue 3) ([Vue 3] babel, eslint) Manually select features
Vue CLI v4.5.13
? Please pick a preset:
  Default ([Vue 2] babel, eslint)
> Default (Vue 3) ([Vue 3] babel, eslint) 
  Manually select features

作成後のプロジェクト構成

作成直後は以下のような構成となっています。

各種ファイルの追加/追記など

HelloWorld.vueに追記

HelloWorld.vueのscriptタグ内に、コンソール出力を追記します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<script>
export default {
name: 'HelloWorld',
props: {
msg: String
},
created() {
console.log("debug!!!!!!!!!!!")
}
}
</script>
<script> export default { name: 'HelloWorld', props: { msg: String }, created() { console.log("debug!!!!!!!!!!!") } } </script>
<script>
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  },
  created() {
    console.log("debug!!!!!!!!!!!")
  }
}
</script>

vue.config.jsの追加

作成したプロジェクトに「vue.config.js」を以下の内容で追加します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
module.exports = {
configureWebpack: {
devtool: 'source-map'
}
}
module.exports = { configureWebpack: { devtool: 'source-map' } }
module.exports = {
  configureWebpack: {
    devtool: 'source-map'
  }
}

プロジェクトの構成は以下のようになります。

ディレクトリの移動

ターミナルで、作成したプロジェクトのディレクトリに移動します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> cd test_vue
> cd test_vue
> cd test_vue

サーバーの起動

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
test_vue> npm run serve
test_vue> npm run serve
test_vue> npm run serve

サーバーが起動して、ターミナルに以下のような表示が出ていることを確認します。

launch.jsonの作成

実行とデバッグのボタンを押して、「launch.json ファイルを作成します。」という文字列を選択します。

環境の選択というリストが表示されるので、「Chrome」を選択します。

作成された「launch.json」を以下のように編集します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "vuejs: chrome",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}/src",
"breakOnLoad": true,
"sourceMapPathOverrides": {
"webpack:///src/*": "${webRoot}/*"
}
}
]
}
{ // IntelliSense を使用して利用可能な属性を学べます。 // 既存の属性の説明をホバーして表示します。 // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "chrome", "request": "launch", "name": "vuejs: chrome", "url": "http://localhost:8080", "webRoot": "${workspaceFolder}/src", "breakOnLoad": true, "sourceMapPathOverrides": { "webpack:///src/*": "${webRoot}/*" } } ] }
{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "chrome",
            "request": "launch",
            "name": "vuejs: chrome",
            "url": "http://localhost:8080",
            "webRoot": "${workspaceFolder}/src",
            "breakOnLoad": true,
            "sourceMapPathOverrides": {
              "webpack:///src/*": "${webRoot}/*"
            }
        }
    ]
}

ブレークポイントの設定

HelloWorld.vueを開き、console.log()の行にブレークポイントを設定します。

デバッグの開始

実行とデバッグのボタンを押して、デバッグの開始ボタン(緑の▷)を押します。

すると、Chromeで「http://localhost:8080/」が表示されます。

しかし、対象のブレークポイントを見ると「Unbound breakpoint」と表示され無効な状態になっています。

Chromeの右上メニューから、その他ツール > デベロッパーツールを選択します。

Sourcesタブで、デバッグ対象のソース(ここではsrc > components > HelloWorld.vue)を開き、ブレークポイントを設定します。

Chromeで再読み込みボタンを押します。

すると、Chrome上のブレークポイントで止まります。

同様に、Visual Studio Codeでも止まっており、ステップオーバー等で操作することが出来ます。
(ChromeおよびVisual Studio Codeのどちらでも可能です。)

参考

Vue.js:VS Code によるデバッグ

https://jp.vuejs.org/v2/cookbook/debugging-in-vscode.html

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です