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"
    ]
  }
}

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


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.


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


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.


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 .


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ć.


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.


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.


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

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.


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.




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';


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.


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.


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ć.


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.


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


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.

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

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


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 

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


0

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

npm i --save @angular/platform-server  

Następnie ponownie otwórz kod VS


0

To zadziałało dla mnie.

 npm install --save-dev @angular-devkit/build-angular

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


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"
    }
  ]
    }

-1

Biegnij

npm install 

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


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.