🕌

VS CodeでVueのIntellisense(入力補完)が遅いとき

2021/06/26に公開

前提

  • Veturを利用している
  • jsconfig.jsonを書いている
  • NuxtかVueで開発している

参考にしたサイト

ずっと理由がわからず、VS Codeくそやん!とか思ってしまいましたがどうやらVS Codeは悪くないようです。
Vetur Intellisense slow and incomplete if project has jsconfig #547

結論

jsconfigの「include」には、veturに適用する必要のあるフォルダーのみを含める。
プロジェクトフォルダのjsconfig.jsonを


{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "~/*": ["./*"],
      "@/*": ["./*"],
      "~~/*": ["./*"],
      "@@/*": ["./*"]
    }
  },
  "exclude": ["node_modules", ".nuxt", "dist"]
}

から

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "~/*": ["./*"],
      "@/*": ["./*"],
      "~~/*": ["./*"],
      "@@/*": ["./*"]
    }
  },
  "include": ["pages", "store", "layout", "component"],
  "exclude": ["node_modules", ".nuxt", "dist", "assets", "functions"]
}

に変えた(includeで含むフォルダだけ書けばexcludeは無くてもいいはず)

解決まで

まずは遅い原因がVS Codeなのか考えたところ、vueファイル以外のjsファイルなどは遅くないので拡張機能が原因だと思い、veturが怪しいと思ったのでググったところ先程のissueを見つけました。
前はこんな遅くなかった気がしたので最近assetsにDBに入れる前のjsonファイルやsvgを突っ込んだりしたのを思い出し、vueのコードを置くpagesやstoreなどだけをveturの適用範囲にしたところ速度が戻りました。
nuxtでなくvueで開発しているならsrcファイルにコードをすべて入れてincludeをsrcだけにするのもいいと思います。

Discussion