修好了!如果有人仍在努力让 Angular 2 Final 与 ASP.Net MVC 配合使用,请分享详细信息
让我感谢Barry https://stackoverflow.com/users/5011872/barry and Brando https://stackoverflow.com/users/3532945/brando寻求他们在不同点的指导。
我能够通过以下步骤修复上述错误:
Visual Studio 2015 是附带一个非常旧的版本npm 的。因此,您需要做的第一件事就是从以下位置下载并安装最新版本的 Node:https://nodejs.org/en/ https://nodejs.org/en/(我安装的是v6.1.0,当前最新的)。
安装后,您需要告诉 Visual Studio 使用最新版本的节点而不是嵌入的旧版本。为此,请按照以下步骤操作:
- 在 Visual Studio 中,从顶部菜单转到“工具”>“选项”
- 展开对话框中显示的项目和解决方案节点
- 选择外部网络工具
- 添加指向 C:\Program Files\nodejs 的新条目
(或者到你安装nodejs的位置)
- 将其移至列表顶部。
- 重新启动 Visual Studio 并恢复 npm 包。
这应该可以修复上述错误,但是现在如果您尝试编译该项目,您可能会看到很多错误,主要是由于缺少类型定义,例如:
严重性代码 说明 项目文件行抑制状态
错误 TS6053 构建:找不到文件 /node_modules/angular2/ts/typings/jasmine/jasmine.d.ts'
增强中的模块名称无效,找不到模块“../../Observable”。
TypeScript 虚拟项目node_modules\rxjs\add\operator\zip.d.ts
“Observable”类型上不存在属性“map”。
要修复上述错误,您只需在 main.ts 或 bootstrap.ts 顶部添加以下链接即可:
///<reference path="./../typings/browser/ambient/es6-shim/index.d.ts"/>
这应该可以修复上述打字错误。
通过 RC,Angular 团队将所有组件作为单独的文件提供。因此,过去如果您能够将 Angular 包作为打包文件 angular2.dev.js (或 min 文件)包含在索引文件中,那么现在就行不通了。所需的组件需要包含在您的应用程序所需的索引中。您可以使用 systemjs.config.js 来添加依赖项。我强烈建议您阅读官方快速入门指南,特别是这一部分:
Link: https://angular.io/guide/quickstart https://angular.io/guide/quickstart
即使按照上述步骤进行正确配置后,当您运行应用程序时,您可能会看到 404,因为缺少 Angular 文件。
原因是,默认情况下 ASP.Net 5 在 /wwwroot/node_modules/ 文件夹中查找 Angular 依赖项。由于node_modules位于项目根文件夹中而不是wwwroot文件夹中,因此浏览器返回404(未发现错误)。因此,将 @angular 文件夹从 node_modules 文件夹移动到 wwwroot 应该可以解决该问题。
地图错误
在某些情况下,升级 TypeScript 版本还会修复地图错误:
尝试按照以下步骤升级到 TypeScript 2:
- 在 Visual Studio 中单击“工具”>“扩展和更新”
- 从对话框左侧显示的列表中选择“在线”
- 搜索 TypeScript
- 从搜索结果中安装适用于 Microsoft Visual Studio 2015 的 TypeScript 2.0 Beta。
- 重新启动计算机,希望它能修复所有地图错误
希望这可以帮助。