Jak zrobić, żeby VSCode z checkJS pomijał moduły z package-lock.json?


(look997) #1

Korzystam z react-scripts.
Mam ustawione w vscode, w jsconfig.json proste:
{
“compilerOptions”: {
“checkJs”: true,
“jsx”: “react”
}
}
Problem jest z modulami z node_modules.
vscode pokazuje mi, że moduł redux istnieje, jest dostępny(nie podkreśla adresu modułu jako błędny), chociaż nie jest zainstalowany do tej paczki.

Problem wynika z tego, że ten moduł jest w zależnościach modułów (jest w package-lock.json) a folder node_modules jest płaski i wygląda na to, że vscode bierze wszystkie moduły w tego folderu jak leci, nie sprawdza czy te moduły są faktycznie dodane do paczki projektu czy w zależnościach modułów.

Jak to ustawić, żeby pomijało zależności modułów?

To który moduł jest zależnością a który nie widać chyba tylko package.json, więc vscode musiałby dostać się do tego pliku i utworzyć z niego listę wyjątków, które moduły z node_modules może brać pod uwagę… No chyba że istnieje gotowe rozwiązanie?


(Frankfurterium) #2

Dodaj:

"exclude": [
    "node_modules"
]

(look997) #3

O dziwo kompletnie nic to nie zmieniło. :open_mouth:
Spodziewałem się, że wytnie wszystkie moduły, a nie wycięło ani tych z package.json ani tych z package-lock.json.

Co więcej, to czego nie pisałem: podpowiedzi były i są nadal podwójne do każdego modułu. Kompletnie nie wiem dlaczego.


(Fizyda) #4

VSC przypadkiem nie integruje się z gitem? W tedy można wykluczyć katalog w gitignore. Nie jestem pewny czy nie powinieneś dodać **/node_modules ale to już zależnie od struktury katalogów w projekcie.


(look997) #5

W .gitignore jest /node_modules nawet domyślnie.

Sprawdziłem bez rozszerzeń i też nic się nie zmienia. Jedynie zlokalizowałem rozszerzenie dublujące intellisence dla nazw modułów, teraz już wyświetlają się tylko pojedyncze podpowiedzi.

A muszę powiedzieć jeszcze, że nie ma i wcześniej też nie było podpowiedzi dla modułów z package-lock. Jedynie gdy już są wpisane w kod, to ich nie podkreśla jako błąd. Ale jak wpiszę moduł którego nie ma ani w package.json ani w package-lock.json to podkreśla jako błąd.

Wiec intellisence sobie radzi a podkreślanie błędów sobie nie radzi.
To chyba kwestia build-in rozszerzenia vscode.typescript bo ono za to odpowiada (w zasadzie za intellisence też). A czy pośrednio jakiejś innej części vscode to nie wiem.
I na jakiej zasadzie też nie wiem.

EDIT: gdy zmienię rozszerzenie pliku na *.ts to ten błąd nie występuje. Nie ma podpowiedzi i nie uznaje modułów z package-lock.json za istniejące.
Także coś z checkJs jest nie tak, jakoś na tym etapie włącza się coś nadmiarowo albo coś nie włącza.


(Fizyda) #6

Mi osobiście VSC nie do końca pod pasował, jest spoko, na pewno na plus jakość dostępnych pluginów, ale czuć w nim niestety electron i ms. Dlatego wróciłem do ST3. Jednak gdybym klepał tylko i wyłącznie strony internetowe jedna za drugą to raczej spróbowałbym coś ze stajni JetBrains czyli PHPStorm i WebStorm.