4
3

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

vscodeのjs intellisenseからjqueryを除外する

Posted at

なぜそんなことを

vscodeが(適切な設定になっていれば)@typesパッケージを自動的に取得してjsに補完を効かせてくれることは有名だと思うが、その際にハマったポイント。

Webdriver.ioを利用したコードをvscodeで書いていたのだが、"$"という名前を打つとWebdriver.ioの"$"ではなくjqueryの"$"が勝手にintellisenseされてしまった。


↓この"$"はjqueryのものなので使わないでほしい
1.png

↓ちなみに"$$"などは正しくWebdriver.ioのものをとってきている
2.png

解決策

vscodeのtype intellisense除外設定はjavascriptの場合jsconfig.jsonに書く。

{
  "compilerOptions": {
    "target": "es6",
    "baseUrl": "./src"
  },
  "exclude": ["node_modules"],
  "typeAcquisition": {
    "exclude": [/*ここに除外するものを書く*/],
  }
}

ただ、このexcludeにjqueryと書いたらいけるかというとそうはならない。

なぜなら、正確には@types/jqueryが指定されてインストールされているわけではなく、他の@typesパッケージが依存関係に@types/jqueryを指定しているため結果的に入ってしまっているから。(ややこしい)

では具体的にどのパッケージを除外すればいいかというと、それを確認するためにまず"@types/jquery"がどこにあるかを確認する必要がある。

確認の仕方は"$"を選択して右クリック→Go to Type Definition→ファイル名が書いてあるタブにマウスをhover。

筆者の場合は
C:\Users\{name}\AppData\Local\Microsoft\TypeScript\3.3
の下のnode_modulesにあった。

上記の場合
[略]\TypeScript\3.3
に行くとおなじみのpackage.jsonがあるので、そこで以下のコマンドを打つ。(npm必須)

C:\Users\{user}\AppData\Local\Microsoft\TypeScript\3.3> npm ls @types/jquery
C:\Users\{user}\AppData\Local\Microsoft\TypeScript\3.3
+-- @types/urijs@1.15.38
| `-- @types/jquery@3.3.29
`-- @types/velocity-animate@1.2.33
  `-- @types/jquery@3.3.29  deduped

この例でいうと@types/urijs@types/velocity-animate@types/jqueryを必要としているので結果的に@types/jqueryが入ってしまっているということがわかる。

そのためjsconfig.jsonには以下のように指定すれば良い。

{
  "compilerOptions": {
    "target": "es6",
    "baseUrl": "./src"
  },
  "exclude": ["node_modules"],
  "typeAcquisition": {
    "exclude": ["urijs", "velocity-animate"]
  }
}

その後vscodeを再起動する。

結果

うまいこと補完されるようになった。

3.png

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?