vs代码找不到模块“ @ angular / core”或任何其他模块


86

我的项目是使用[Angular CLI]版本1.2.6生成的。

我可以编译项目,并且可以正常工作,但是我总是在vs代码中出错,告诉我找不到模块'@ angular / core'找不到模块'@ angular / router'找不到模块.....

屏幕截图 屏幕截图

我已经附加了tsconfig.json文件的内容,这对我来说真的很沮丧,花了2个小时弄清楚出了什么问题,我还卸载并重新安装了无法正常工作的vs代码。

这是我的环境规格:

@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

操作系统:Microsoft vs 10 Enterprise

项目根文件夹

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

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
这是因为您已将角铁芯安装为整体。Intellisense在node_modules中找不到它。
Prajwal

角核在我的node_module中
Arash

25
vscode之前有打开过一个项目npm install吗?如果yes你尝试重新启动vscode之后呢?
kuncevic.dev

6
我已经重新启动100次
Arash

您可以尝试使用cli生成一个新项目,npm install然后查看该项目是否存在相同的东西吗?
kuncevic.dev

Answers:


115

我只有在导入自己创建的组件/服务时才遇到此问题。对于像我这样的人,对于他们这些不能接受的解决方案,可以尝试以下操作:

"baseUrl": "src"

在你的tsconfig.json。原因是可视代码IDE无法解析基本URL,因此无法解析导入组件的路径并给出错误/警告。

src默认情况下,角度编译器将其作为baseurl进行编译。

注意:

您需要重新启动VS Code IDE才能使此更改生效。

编辑:

如其中一项注释中所述,在某些情况下,更改工作空间版本也可能有效。此处有更多详细信息:https : //github.com/Microsoft/vscode/issues/34681#issuecomment-331306869


这对我有用...但是现在出现另一个错误Build:类'Subject <T>'错误地扩展了基类'Observable <T>'
SAM

似乎与这个问题无关的@sam。也许将其与代码一起发布为新问题。
–TryToLearn

2
这对我有用。我在tsconfig.app.json文件的basUrl中添加了src。“ baseUrl”:“ src”,
howserss

1
在tsconfig.json文件中添加“ baseUrl”:“ src”对我有用。
Chamu

1
不错,通过在tsconfig中添加“ baseUrl”:“ src”并重新启动IDE解决了我的问题。
Gauttam Jada

74

在角度项目中最有可能丢失的node_modules包,运行:

npm install

在角度项目文件夹中。


2
到底怎么回事!以棱角开头,这挽救了我的今天
M-SanNan

原始问题中的目录树包含node_moduls / @ angular / core文件夹,但可能为空。
eckes

3
然后重新启动VSCode
andreikashin

这是在2020年做到的。谢谢。
秋藤

36

如果有任何更新或安装或清除缓存,则需要重新启动Visual Code


VS Code已更新,而我不知道它。重新启动有帮助。
Nikoalset

17

对我来说,解决方法是运行

npm install

然后卸载,然后在Visual Studio中重新加载项目。


14

angular 5今天在我的应用程序中遇到了这个问题。而帮助我的解决方法很简单。我加入"moduleResolution": "node"compilerOptions了在tsconfig.json文件中。我完整的tsconfig.json文件内容如下。

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

moduleResolution指定模块的解决策略。此设置的值可以是nodeclassic。您可以在此处阅读有关此内容的更多信息。


挽救了我的事业!

有史以来最好的答案!
何塞·内托(

6

从项目文件夹中删除节点模块文件夹。运行以下命令

npm cache clean --force npm install

它应该工作。


5

尝试使用:

npm audit fix --force

然后:

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

而不是在@ng-bootstrap/ng-bootstrap全球范围内保存。


5

我有同样的问题。我通过清除npm缓存(位于 “ C:\ Users \ Administrator \ AppData \ Roaming \ npm-cache”)解决了该问题

或者您可以简单地运行:

npm cache clean --force

然后关闭vscode,然后再次打开您的文件夹。


3

我遇到了同样的问题,可能有两个原因,

  1. 您的src基本文件夹可能未声明,要解决此问题,请转到tsconfig.json并将基本网址添加为“ 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. 您可能在npm中有问题,要解决此问题,请打开命令窗口并运行-npm install

2

我卸载了所有已经安装的扩展程序,结果发现以下地址的JavaScript和TypeScript IntelliSense扩展程序引起了该问题。 https://marketplace.visualstudio.com/items?itemName=sourcegraph.javascript-typescript

这里的意思是,当您访问该网站时,您会看到一个黄色标签,告诉您它处于预览版本,但是当您在vs扩展程序中浏览时,您看不到该标签。


不幸的是,即使卸载所有扩展并重新启动VS Code ,我仍然遇到此问题。:/
Jonathan

1
抱歉,我应该对此进行更新。是的,它似乎已经清除了,但是我不确定我究竟记得如何。但是,我确实做了一些事情:A)完全删除并重新创建了我的解决方案,B)卸载并重新安装了Angular CLI,C)重新启动了我的计算机。希望这可以帮助某人。如果再次发生,我将尝试更加系统地确定如何修复它,以便我可以报告可重复的解决方案。
乔纳森

1
另一种可能的解决方案是单击状态栏并选择“使用工作区版本”,请参见github.com/Microsoft/vscode/issues/34681
Luis Cantero,

2

我尝试了很多家伙在这里告知的内容,但没有成功。之后,我才意识到我正在使用Deno支持VSCode扩展。我将其卸载,需要重新启动。重新启动后,问题已解决。



1

就我而言,这是进口行的错误拼写。如果手动键入@ angular / core部分,请检查是否正确拼写了该部分。

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


1

对我来说,解决方法是导入整个项目。对于那些在2019年有此问题的人,请检查您是否导入了整个项目而不是项目的一部分。


1

如果您做了我(愚蠢的)所做的事...将组件文件夹拖放到我的项目中,那么您可能可以通过执行修复工作来解决它。

说明:基本上,从某种意义上讲,Angualar CLI必须告诉InteliJ什么@angular意思。如果您只是在使用Angular CLI的情况下将文件放入项目中ng g componentName --module=app.module则Angular CLI不会更新此引用,因此IntelliJ不知道它是什么。

方法:触发​​Angular CLI以更新的引用@angular。我目前只知道执行此操作的一种方法...

实现:在与您遇到问题的组件相同的级别上添加一个新组件ng g tempComponent --module=app.module 这将强制Angular CLI运行和更新项目中的这些引用。现在,只需删除刚刚创建的tempComponent,别忘了在app.module中删除对其的任何引用

希望这可以帮助其他人。


1

我遇到了同样的问题,这很奇怪,因为项目已编译并且运行无误。我更新了npm,然后重新安装了软件包

npm update
npm install

然后vs代码就不再那么说了。



0

您需要做的就是在项目中包含“ nodes_modules”文件夹。当您通过git命令行从github克隆任何项目时,可能会遇到此问题。


可能不是这样,因为在站点根目录中包含package.json文件的文件夹中运行npm install时,将自动为您创建包含所需模块的文件夹。
基南·斯图尔特

是的 如果运行nmp install,则它将通过检查package.json文件下载必要的软件包。–
Anand

0

在Visual Studio Code中克隆或打开现有项目时发生。在集成终端中,运行命令npm install


1
这已经被多次给出了。您想添加什么新内容吗?
Nico Haase

0

我解决了这个问题,如下所示:

  1. 在您的项目中打开Visual Studio代码。
  2. 终端->新终端。
  3. npm install

1
已经至少有2个不同的答案说“运行npm install
barbsan

0

执行以下两个命令可以为我解决问题:

npm install -g @angular/cli
ng update --all --force

1
发布多个相同的答案充其量是“极度皱眉”,您的答案可能会被删除。就您而言,您在所有答案中都拼错了Angular。
David Buck

请在您的代码中添加一些解释,以便其他人可以从中学习
Nico Haase

0

很可能缺少npm软件包。有时npm install无法解决问题。

我也面临同样的问题,node_modules并且通过删除文件夹解决了这个问题,然后npm install


0

对于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

在VSCode状态栏中,它必须显示打字稿版本-像这样 在此处输入图片说明

单击该版本号将显示此可用的不同版本。 在此处输入图片说明

如果您使用的是VSCode版本,那么如果是VScode问题而不是tsconfig.json,则切换到Workspace版本可以解决问题(我已经在使用该版本,因此未突出显示) 在此处输入图片说明


0

试试这个,对我有用:

npm i --save @angular/platform-server  

然后重新打开VS代码


-1

跑步

npm install 

在大多数情况下都可以使用


这是不正确的。问题表明它正在正确编译,而问题出在VSCode,而不是编译
ManavM

1
我的项目正在正确编译并正在运行,问题出在VSCode而不是编译之内,而npm install只是解决了它。
特里尔

-3

从我的角度来看,您正在使用的CLI和库不匹配。ionic CLI版本1无法为ionic CLI版本4构建库。最好的解决方案是尝试升级CLI版本。否则,您可以使用nvm,它允许您在同一OS上运行多个节点版本。这可以帮助您根据需求在不同项目中使用不同的离子CLI版本。

查看nvm @:他们的官方Windows存储库。还有一个MAC和Linux版本。


-5

如果出现这种类型的错误,请使用以下命令:

 npm i @anglar/core,
 npm i @angular/common,
 npm i @angular/http,
 npm i @angular/router

安装完这个也显示错误后,只需删除几个单词,然后再次添加该单词即可。


1
原始的package.json已安装它们。“删除几句话”是什么意思?
eckes
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.