2016-05-13 74 views
5

我想在Visual Studio 2015中使用Typescript创建一个Angular 2应用程序。我在我的机器上安装了npm。当我编译我的应用程序时,出现错误,找不到模块'@ angular/core'。 它在导入语句的node_modules文件夹下的所有ts文件中被引用。 例如找不到模块@ angular/core + angular2

import { ElementRef, AfterViewInit, OnDestroy, DoCheck, EventEmitter, IterableDiffers } from '@angular/core'; 

我目前正在500左右加错误。当我用'angular2/core'替换它时,错误消失。也只是为了让你知道,我也在我的项目中使用PrimeNG UI组件。

有人可以帮忙吗?我不明白为什么它看着@ angular/core?

+0

我建议使用https://cli.angular.io/。另请参阅https://www.youtube.com/watch?v=wHZe6gGI5RY –

+0

谢谢。我可以将cli.angular.io生成的代码结构包含到我的visual studio解决方案中吗? – Tom

+0

对不起,不能帮助你。 –

回答

2

angular2angular2模块名称中的名称适用于RC(候选版本)版本(测试版本)之前的版本和RC版本的@angular之一。

+0

我正在使用angular2 2.0.0-beta.17版本。那么是什么问题 – Tom

+0

所以你需要使用:从'angular2/core'导入{...}; –

+0

我现在有点困惑。当我执行npm install angular2时,它会安装ngular2 2.0.0-beta.17版本。我如何安装发行候选版本。因为我需要使用最新的。 – Tom

5
  1. 安装的NodeJS
  2. 打开命令提示符并键入 'cd 项目目录'
  3. 类型 '故宫安装',然后回车。

这将在该目录内创建一个node_modules文件夹,该文件夹应该具有所需的@ angular/core。

+0

感谢您的回答。真的节省了我的时间! –

2

您首先需要在全球范围添加类型,如下所示。

npm install -g typings 

然后使用下面的命令创建typings.json。

typings init 

下面的代码粘贴在typings.json

{ 
    "name": "ng2-application", 
    "globalDependencies": { 
    "core-js": "registry:dt/core-js#0.0.0+20160725163759", 
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255", 
    "node": "registry:dt/node#6.0.0+20160909174046" 
    } 
} 

现在,您需要在tsconfig.json添加以下代码

"compilerOptions": { 
     "moduleResolution": "node" 
     } 

上面的步骤,你将能够在得到定义后做F12。

+0

工程就像一个魅力,谢谢。 – AfroChase

0

当我遇到这个问题时,它会根据我选择的模块种类而来。 (Visual Studio,右键单击项目,属性,Typescript选项卡,它将出现在“系统”模块系统中,该系统在Angular2 QuickStart教程中使用,但不适用于其他一些系统)。

我验证了文件夹/ node_modules/@ angular/core /存在于proj中,并已填充。

解决方案是编辑.csproj文件并在Debug和Release部分添加行<TypeScriptModuleResolution>Node</TypeScriptModuleResolution>。对于ModuleKind的某些设置,VS默认为Classic。

相关问题