LoginSignup
15
9

More than 5 years have passed since last update.

Nuxt.jsにVS Code上でブレークポイントをかける

Last updated at Posted at 2019-04-15

前提

まず↓こちらの記事に沿ってpackage.jsonとlaunch.jsonを作ります。
https://qiita.com/idani/items/ac638d5a0786aaefb8cf@idani様 ありがとうございます)

これでデバッガは起動するのですが、VS Code上でBreakpointが張れなかったので、もう一歩調べてみました。

Source Map 有効化

webpackされている関係で、ブラウザが認識しているファイルとVS Codeが認識しているファイルが一致しない。
これを一致させるため、source mapを有効化する。

nuxt.config.js
module.exports = {
  ...
  build: {
    extend(config, ctx) {
+     if (ctx.isDev) {
+       config.devtool = 'inline-cheap-module-source-map'
+     }
      // Run ESLint on save
      if (ctx.isDev && ctx.isClient) {
        ...

設定追加

ここまででとりあえずVS Code上でブレークポイントを設定できるようになるが、実際は止めたい位置で止まらないことがある。
原因は、単一のXXX.vueファイルがブラウザ上では
image.png
このように複数に分かれて認識されているため。間違ったファイルにブレークポイントがかかってしまう。
これを解決するため、launch.jsonにsourceMapPathOverridesを指定する。

launch.json
    ...
    "configurations": [
      {
        "type": "chrome",
        "request": "launch",
        "name": "Launch Chrome",
        "url": "http://localhost:3000",
        "webRoot": "${workspaceFolder}",
        "runtimeArgs": [
          "--remote-debugging-port=9222"
        ],
+       "sourceMapPathOverrides": {
+         "webpack:///*.vue": "${workspaceFolder}/*.vue"
+       }
      },
      ...

↑このように拡張子.vueまで指定するのがポイント。

15
9
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
15
9