使用angular2 / ASP.NET5的模块分辨率(找不到angular2 / core)

时间:2016-11-10 06:21:42

标签: angular typescript

我已经开始了一个新的ASP.NET5 / MVC6项目。

尝试1 我的问题是,当我在moduleResolution中将classic设置为tsconfig.json时,我收到如下错误:

  

无法找到模块'angular2 / core'

尝试2 如果我更改tsconfig.json以使用node解析,则node_modules中的排除tsconfig.js不起作用,{{3}虽然它似乎仍然是一个问题,但当工作室2015通过node_modules文件夹,包括整个树中的每个.d.ts时,会遇到多个错误。}有数百个错误,主要是rxjs

尝试3 如果我完全删除tsconfig.json,我可以让应用程序执行,并编译文件,但唉,这个错误在浏览器中。

  

错误:(SystemJS)要求未定义

我不禁认为Visual Studio 中的angular2 / typescript支持完全混乱,我应该回到angular 1和MVC5 。为了记录,我使用的是typescript 2.0.6,我的visual studio是完全最新的。

  

package.jsontsconfig.json的组合实际上是否与Visual Studio 2015 for angular2一起开箱即用。

package.json具有以下依赖关系。

{
  "version": "1.0.0",
  "name": "asp.net",
  "private": true,
  "devDependencies": {
    "angular2": "^2.0.0-beta.17"
  },
  "dependencies": {
    "@types/angular2": "0.0.2",
    "angular2": "^2.0.0-beta.17",
    "es6-shim": "^0.35.1",
    "gulp": "^3.9.1",
    "gulp-jasmine": "^2.4.2",
    "gulp-print": "^2.0.1",
    "gulp-sass": "^2.3.2",
    "gulp-typings": "^2.0.4",
    "gulp-watch": "^4.3.10",
    "karma": "^1.3.0",
    "reflect-metadata": "^0.1.8",
    "rxjs": "^5.0.0-rc.2",
    "zone.js": "^0.6.26"
  }
}

tsconfig.json如下

{
  "compilerOptions": {
    "experimentalDecorators": true,
    "moduleResolution": "classic"
  },
  "exclude": ["node_modules"]
}

boot.ts如下

/// <reference path="../node_modules/angular2/core.d.ts"/>
//  the above is a correct path, but it doesn't seem to matter.
import {bootstrap} from "angular2/platform/browser";
//                       ~~~~~~~~~~~~~~~~~~~~~~~~~ (Error Here)
import {HTTP_PROVIDERS} from "angular2/http";
import {AppComponent} from "./app.component";

bootstrap(AppComponent, [HTTP_PROVIDERS]);
console.log("starting angular...");

app.component.js

/// <reference path="../node_modules/angular2/core.d.ts"/>

import { Component, OnInit } from "angular2/core";
//                                 ~~~~~~~~~~~~~ (Error Here)

@Component({
    selector: "app",
    templateUrl: "static.html"
})
export class AppComponent implements OnInit {
    message: string;

    constructor() {
        console.log("starting app component");
    }

    ngOnInit() {
        this
            .message =
            "The 'static.html' was used as the Angular2 'templateUrl'. There is a 'message' property bound to the <blockqoute> element.";
    }
}

1 个答案:

答案 0 :(得分:0)

注意:确保在wwwroot目录中安装了 es6-shim.d.ts 。如果没有es6-shim.d.ts

,就无法编译打字稿遍历的许多node_modules文件

我有一个集成angular2(2.1.0)和ASP.NET核心的示例,我认为ng2的软件包依赖项也适用于ASP.NET5。

package.json

systemjs.config.js

希望它有所帮助!