vs code nie może znaleźć modułu „@ angular / core” ani żadnych innych modułów

90

mój projekt został wygenerowany za pomocą [Angular CLI] w wersji 1.2.6.

Mogę skompilować projekt i działa dobrze, ale zawsze otrzymuję błąd w kodzie vs, który mówi mi, że nie mogę znaleźć modułu „@ angular / core”, nie można znaleźć modułu „@ angular / router”, nie można znaleźć modułu .....

zrzut ekranu zrzut ekranu

Załączam zawartość mojego pliku tsconfig.json, co było dla mnie naprawdę frustrujące, spędziłem 2 godziny, aby dowiedzieć się, co jest nie tak, również odinstalowałem i ponownie zainstalowałem kod VS, który nie działa.

oto moja specyfikacja środowiska:

@angular/cli: 1.2.6
node: 6.9.1
os: win32 x64
@angular/animations: 4.3.4
@angular/common: 4.3.4
@angular/compiler: 4.3.4
@angular/core: 4.3.4
@angular/forms: 4.3.4
@angular/http: 4.3.4
@angular/platform-browser: 4.3.4
@angular/platform-browser-dynamic: 4.3.4
@angular/router: 4.3.4
@angular/cli: 1.2.6
@angular/compiler-cli: 4.3.4
@angular/language-service: 4.3.4

system operacyjny: Microsoft kontra 10 Enterprise

folder główny projektu

.angular-cli.json
.editorconfig
.gitignore
.vscode
e2e
karma.conf.js
node_modules
package.json
protractor.conf.js
README.md
src
tsconfig.json
tslint.json

folder node_module

-@angular
--animations
--cli
--common
--compiler
--compiler-cli
--core
---@angular
---bundles
---core.d.ts
---core.metadata.json
---package.json
---public_api.d.ts
---README.md
---src
---testing
---testing.d.ts
---testing.metadata.json
--forms
--http
--language-service
--platform-browser
--platform-browser-dynamic
--router
--tsc-wrapped
@ng-bootstrap
@ngtools
-@types
--jasmine
--jasminewd2
--node
--q
--selenium-webdriver

tsconfig.json:

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2016",
      "dom"
    ]
  }
}
Wysypka
źródło
2
To dlatego, że zainstalowałeś rdzeń kątowy jako globalny. Intellisense nie może go znaleźć w node_modules.
Prajwal
kątowy rdzeń znajduje się w moim module node_module
Arash
26
Czy otworzyłeś projekt vscodeprzed tobą npm install? Jeśli yespo tym spróbowałeś ponownie uruchomić vscode?
kuncevic.dev
6
restartowałem 100 razy
Arash
Czy możesz spróbować wygenerować nowy projekt za pomocą CLI, npm installa następnie sprawdzić, czy z tym jest to samo?
kuncevic.dev

Odpowiedzi:

120

Z tym problemem miałem do czynienia tylko podczas importowania własnych stworzonych komponentów / usług.Dla tych z Was takich jak ja, dla których przyjęte rozwiązanie nie zadziałało, mogą wypróbować:

Dodaj

"baseUrl": "src"

w Twoim tsconfig.json . Powodem jest to, że IDE kodu wizualnego nie jest w stanie rozpoznać podstawowego adresu URL, więc nie może znaleźć ścieżki do importowanych komponentów i wyświetla błąd / ostrzeżenie.

Podczas gdy kompilator kątowy srcdomyślnie przyjmuje jako baseurl, więc jest w stanie skompilować.

UWAGA:

Musisz ponownie uruchomić VS Code IDE, aby ta zmiana zaczęła obowiązywać.

EDYTOWAĆ:

Jak wspomniano w jednym z komentarzy, w niektórych przypadkach zmiana wersji obszaru roboczego może również działać. Więcej szczegółów tutaj: https://github.com/Microsoft/vscode/issues/34681#issuecomment-331306869

próbujący się uczyć
źródło
1
to zadziałało dla mnie ... ale teraz pojawia się kolejny błąd Kompilacja: Klasa „Subject <T>” nieprawidłowo rozszerza klasę bazową „Observable <T>”
sam
@sam, które nie wydaje się być związane z tym problemem. Może opublikuj to jako nowe pytanie wraz ze swoim kodem.
TryToLearn
2
To zadziałało dla mnie. Dodałem src do basUrl w pliku tsconfig.app.json. "baseUrl": "src",
howserss
1
Dodanie „baseUrl”: „src” do pliku tsconfig.json zadziałało.
Chamu
1
Dobrze, dodając "baseUrl": "src" w tsconfig i ponownie uruchom IDE, rozwiązując mój problem.
Gauttam Jada
75

Najprawdopodobniej brakuje pakietu node_modules w projekcie kątowym, uruchom:

npm install

wewnątrz folderu projektu kątowego.

Stefan Mitic
źródło
2
co u licha! zaczynając od
angular,
Drzewo katalogów w pierwotnym pytaniu zawierało folder node_moduls / @ angular / core, ale być może był pusty.
eckes
3
następnie zrestartuj VSCode
andreikashin
Zrobiło to w 2020 roku. Dziękuję.
Akito
36

Ponowne uruchomienie kodu wizualnego jest wymagane w przypadku jakiejkolwiek aktualizacji lub instalacji lub wyczyszczenia pamięci podręcznej

vbrgr
źródło
Kod VS został zaktualizowany bez mojej wiedzy. Restart pomógł.
nikoalset
19

Rozwiązaniem dla mnie był bieg

npm install

a następnie wyładuj, a następnie załaduj ponownie projekt w programie Visual Studio.

jbooker
źródło
15

Miałem angular 5dzisiaj do czynienia z tym problemem w mojej aplikacji. Rozwiązanie, które mi pomogło, było proste. Dodałem "moduleResolution": "node"do compilerOptionsw tsconfig.jsonpliku. Moja pełna tsconfig.jsonzawartość pliku znajduje się poniżej.

{
  "compileOnSave": false,  
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ]
  }
}

moduleResolutionOkreślić moduł strategii rozdzielczości. Wartość tego ustawienia może wynosić nodelub classic. Możesz przeczytać więcej na ten temat tutaj .

Sibeesh Venu
źródło
uratował moją karierę!
null
Najlepsza odpowiedź w historii!
José Neto,
Na górę z Tobą!
Adam
7

Usuń folder Node Modules z folderu projektu Uruchom poniższe polecenie

npm cache clean --force npm install

Powinno działać.

Kruti
źródło
5

Spróbuj użyć:

npm audit fix --force

i wtedy:

npm install --save @ng-bootstrap/ng-bootstrap

zamiast oszczędzać na @ng-bootstrap/ng-bootstrapcałym świecie.

theChosenOne.Duh
źródło
5

Miałem ten sam problem. Rozwiązałem to, czyszcząc pamięć podręczną npm, która znajduje się w „C: \ Users \ Administrator \ AppData \ Roaming \ npm-cache”

Lub możesz po prostu uruchomić:

npm cache clean --force

a następnie zamknij vscode, a następnie ponownie otwórz folder.

waqas.sidd
źródło
5

Miałem do czynienia z tym samym problemem, mogą być dwa powody:

  1. Twój podstawowy folder src mógł nie zostać zadeklarowany. Aby rozwiązać ten problem, przejdź do tsconfig.json i dodaj podstawowy adres URL jako „src” -
{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "src",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "esnext",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    "lib": [
      "es2018",
      "dom"
    ]
  },
  "angularCompilerOptions": {
    "fullTemplateTypeCheck": true,
    "strictInjectionParameters": true
  }
}
  1. możesz mieć problem z npm, Aby rozwiązać ten problem, otwórz okno poleceń i uruchomnpm install
Sandesh Tayde
źródło
2

Odinstalowałem wszystkie rozszerzenia, które już zainstalowałem, i okazuje się, że problem spowodował rozszerzenie JavaScript i TypeScript IntelliSense z poniższego adresu. https://marketplace.visualstudio.com/items?itemName=sourcegraph.javascript-typescript

chodzi o to, że kiedy odwiedzasz witrynę, na której widzisz, pojawia się żółta etykieta, informująca, że ​​jest w wersji zapoznawczej, ale kiedy przeglądasz w porównaniu z rozszerzeniami, nie widzisz tej etykiety.

Wysypka
źródło
Niestety nadal mam ten problem, nawet po odinstalowaniu wszystkich rozszerzeń i ponownym uruchomieniu VS Code. : /
Jonathan
1
Przepraszam, powinienem był podać aktualne informacje na ten temat. Tak, wydaje się, że wszystko się wyjaśniło, ale nie jestem pewien, czy dokładnie pamiętam, jak. Jednak niektóre rzeczy, które zdecydowanie zrobiłem: A) całkowicie usunąłem i ponownie utworzyłem moje rozwiązanie, B) odinstalowałem i ponownie zainstalowałem Angular CLI, C) ponownie uruchomiłem mój komputer. Mam nadzieję, że to może komuś pomóc. Jeśli to się powtórzy, postaram się bardziej metodycznie określić, jak to naprawić, aby móc zgłosić powtarzalne rozwiązanie.
Jonathan
1
Innym możliwym rozwiązaniem jest kliknięcie paska stanu i wybranie opcji „Użyj wersji obszaru roboczego”, patrz github.com/Microsoft/vscode/issues/34681
Luis Cantero
2

Próbowałem wielu rzeczy, które informowali tutaj chłopaki, bez powodzenia. Potem właśnie zdałem sobie sprawę, że używam rozszerzenia Deno Support dla VSCode. Odinstalowałem go i wymagane było ponowne uruchomienie. Po ponownym uruchomieniu problem został rozwiązany.

Jeter Costa e Silva
źródło
2

Musisz go zainstalować ręcznie.

$ npm i @angular/core -s
Prithi
źródło
1

W moim przypadku była to błędna pisownia wiersza importu. Sprawdź, czy poprawnie wpisałeś @ kątową / rdzeń, jeśli wpisujesz ją ręcznie.

import { Component } from '@angular/core';

Adamantus
źródło
1

Rozwiązaniem dla mnie było zaimportowanie całego projektu. Dla tych, którzy mają ten problem w 2019 roku, sprawdź, czy zaimportowałeś cały projekt, a nie część projektu.

Master rsl
źródło
1

Jeśli zrobiłeś to, co ja (głupio) zrobiłem ... co polegało na przeciągnięciu i upuszczeniu folderu komponentów do mojego projektu , prawdopodobnie będziesz w stanie go rozwiązać, robiąc to, co zrobiłem, aby to naprawić.

Wyjaśnienie : Zasadniczo Angualar CLI musi w jakiś sposób powiedzieć InteliJ, co @angularoznacza. Jeśli po prostu umieścisz plik w swoim projekcie bez użycia Angular CLI, to znaczy, że ng g componentName --module=app.moduleAngular CLI nie wie, aby zaktualizować to odniesienie, więc IntelliJ nie ma pojęcia, co to jest.

Podejście : uruchom Angular CLI, aby zaktualizować odwołania do @angular. Obecnie znam tylko jeden sposób, aby to zrobić ...

Implementacja : dodaj nowy komponent na tym samym poziomie, co komponent, z którym masz problemy. ng g tempComponent --module=app.module Powinno to zmusić interfejs wiersza poleceń Angular do uruchomienia i zaktualizowania tych odwołań w projekcie. Teraz po prostu usuń właśnie utworzony tempComponent i nie zapomnij usunąć wszelkich odniesień do niego w app.module .

Mam nadzieję, że to pomoże komuś innemu.

Tripp Cannella
źródło
1

Miałem ten sam problem, było dziwne, ponieważ projekt został skompilowany i działał bez błędów. Zaktualizowałem npm, a następnie ponownie zainstalowałem pakiety

npm update
npm install

wtedy vs Code przestań to mówić.

Santiago Ceron
źródło
0

Wszystko, co musisz zrobić, to uwzględnić w projekcie folder „nodes_modules”. Możesz napotkać ten problem podczas klonowania dowolnego projektu z github za pomocą wiersza poleceń git.

Anand
źródło
prawdopodobnie nie jest tak, ponieważ po uruchomieniu narzędzia npm install w katalogu głównym witryny w folderze zawierającym plik package.json zostanie on automatycznie utworzony z potrzebnymi modułami.
Keenan Stewart
tak. jeśli uruchomisz instalację nmp, pobierze niezbędny pakiet, sprawdzając plik package.json ..
Anand
0

Występuje podczas klonowania lub otwierania istniejących projektów w Visual Studio Code. W zintegrowanym terminalu uruchom polecenie npm install

Paras Rawat
źródło
1
To było już dawane wiele razy. Czy chcesz dodać coś nowego?
Nico Haase,
0

Rozwiązałem ten problem w następujący sposób:

  1. Otwórz kod Visual Studio w swoim projekcie.
  2. Terminal -> Nowy terminal.
  3. Napisz npm install.
Mohamad Alhamid
źródło
1
Istnieją już co najmniej 2 różne odpowiedzi, które mówią „biegnij npm install
barbsan
0

Wykonanie następujących dwóch poleceń rozwiązuje problem za mnie:

npm install -g @angular/cli
ng update --all --force
AbdusSalam
źródło
1
Publikowanie wielu identycznych odpowiedzi jest w najlepszym przypadku „bardzo mile widziane”, a Twoje odpowiedzi mogą zostać usunięte. W Twoim przypadku we wszystkich odpowiedziach wpisałeś również niepoprawnie Angular.
David Buck
Dodaj wyjaśnienie do swojego kodu, tak aby inni mogli się z niego nauczyć
Nico Haase
0

Najprawdopodobniej brakuje pakietu npm. Czasami instalacja npm nie rozwiązuje problemu.

Zmierzyłem się z tym samym i rozwiązałem ten problem, usuwając node_modulesfolder, a następnienpm install

Kazi
źródło
0

dla programu Visual Studio ->

    Seems like you don't have `node_modules` directory in your project folder.
     
    Execute this command where `package.json` file is located:
    
     npm install 
Yodhraj Patil
źródło
0

Na pasku stanu VSCode musi pokazywać wersję maszynopisu - w ten sposób wprowadź opis obrazu tutaj

Kliknięcie tego numeru wersji pokaże ci to, różne dostępne wersje. wprowadź opis obrazu tutaj

Jeśli używasz wersji VSCode, przejście na wersję Workspace rozwiązuje problem, jeśli jest to problem z VScode, a nie tsconfig.json (już używam tej wersji, więc nie jest wyróżniona) wprowadź opis obrazu tutaj

Sanket Sardesai
źródło
0

Spróbuj tego, zadziałało dla mnie:

npm i --save @angular/platform-server  

Następnie ponownie otwórz kod VS

VEEZ
źródło
0

To zadziałało dla mnie.

 npm install --save-dev @angular-devkit/build-angular
Sydney_dev
źródło
0

W moim przypadku, kiedy aktualizuję vs Project do Angular 10, miałem ten błąd.

Angular cli tworzy tsconfig.json, tsconfig.base.jsona tsconfig.app.jsonkiedy usuwam tsconfig.json i zmieniam nazwę tsconfig.base.json na tsconfig.ts, wszystko będzie dobrze. należy również zmienić extends wewnątrz tsconfig.app.json na tsconfig.json

Amir Aghajani
źródło
0

Miałem te same problemy z Sublime Text.

Wymyśliłem następujące rozwiązanie: właśnie zredagowałem

tsconfig.json

w katalogu głównym obszaru roboczego Angular, aby uwzględnić moją świeżo utworzoną aplikację.

 {
  "files": [],
  "references": [
    {
      "path": "./projects/client/tsconfig.app.json"
    },
    {
      "path": "./projects/client/tsconfig.spec.json"
    },
    {
      "path": "./projects/vehicle-market/tsconfig.app.json"
    },
    {
      "path": "./projects/vehicle-market/tsconfig.spec.json"
    },
    {
      "path": "./projects/mobile-de-lib/tsconfig.lib.json"
    },
    {
      "path": "./projects/mobile-de-lib/tsconfig.spec.json"
    }
  ]
    }
Torsten Barthel
źródło
-1

Biegnij

npm install 

będzie działać w większości przypadków

VinK
źródło
To jest niepoprawne. Pytania mówią, że kompiluje się poprawnie, a problem dotyczy VSCode, a nie kompilacji
ManavM
1
Mój projekt kompilował się poprawnie i działał, a problem dotyczył VSCode, a nie kompilacji, a npm install po prostu go naprawił.
Treer
-3

Z mojego punktu widzenia CLI, którego używasz, i biblioteki są niedopasowane. Jonowy interfejs CLI w wersji 1 nie może budować bibliotek dla jonowego interfejsu CLI w wersji 4. Najlepszym rozwiązaniem jest próba zaktualizowania wersji CLI. W przeciwnym razie możesz użyć nvm, który umożliwia uruchamianie wielu wersji węzłów w tym samym systemie operacyjnym. Może to pomóc w używaniu różnych wersji jonowego interfejsu wiersza polecenia w różnych projektach, w zależności od wymagań.

Sprawdź nvm @: ich oficjalne repozytorium systemu Windows. Istnieje również wersja na MAC i Linux.

Siundu254
źródło