2016-08-27 2 views
1

Я пытался Angular2 работать с моим приложением ASP.net ядра, кажется, хорошо до сих пор, единственная проблема, я бегу в это ошибка, когда я начинаю мое заявление:Angular2 + .NETCore 404/трейсер не найдено

Error: Error: XHR error (404 Not Found) loading http://localhost:51435/traceur(…) 

У меня нет подсказки, почему, я удалил комментарии из моего systemjs.config.js и googled около 1 часа, ничего не работает. Может быть, один из вас может мне помочь.

Мой package.json

{ 
    "version": "1.0.0", 
    "name": "projecthome", 
    "private": true, 
    "scripts": { 
    "typings": "typings", 
    "postinstall": "typings install" 
    }, 
    "dependencies": { 
    "@angular/common": "2.0.0-rc.5", 
    "@angular/compiler": "2.0.0-rc.5", 
    "@angular/compiler-cli": "0.5.0", 
    "@angular/core": "2.0.0-rc.5", 
    "@angular/forms": "0.3.0", 
    "@angular/http": "2.0.0-rc.5", 
    "@angular/platform-browser": "2.0.0-rc.5", 
    "@angular/platform-browser-dynamic": "2.0.0-rc.5", 
    "@angular/router": "3.0.0-rc.1", 
    "@angular/upgrade": "2.0.0-rc.5", 
    "core-js": "^2.4.0", 
    "reflect-metadata": "^0.1.3", 
    "rxjs": "5.0.0-beta.6", 
    "systemjs": "0.19.27", 
    "zone.js": "^0.6.12", 
    "angular2-in-memory-web-api": "0.0.17", 
    "bootstrap": "^3.3.6", 

    "jquery": "2.2.2", 
    "font-awesome": "^4.6.3" 
    }, 
"devDependencies": { 
    "gulp": "3.9.1", 
    "gulp-typescript": "^2.13.6", 
    "typescript": "^1.8.10", 
    "typings": "^1.3.2" 
}} 

Мои _Layout.html

<!DOCTYPE html> 

<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <meta charset="utf-8" /> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 

    <title>@ViewBag.Title</title> 

    <base href="/"> 

    <link href="~/lib/css/bootstrap.css" rel="stylesheet" /> 
    <link href="~/lib/css/font-awesome.css" rel="stylesheet" /> 
    @RenderSection("styles", required: false) 

    @*Solve IE 11 issues *@ 
    @*<script src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.33.3/es6-shim.min.js"></script> 
     <script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.20/system-polyfills.js"></script> 
     <script src="https://npmcdn.com/angular2/es6/dev/src/testing/shims_for_IE.js"></script>*@ 

    <!-- 1. Load libraries --> 
    <!-- Polyfill(s) for older browsers --> 
    <script src="node_modules/es6-shim/es6-shim.min.js"></script> 

    <script src="node_modules/zone.js/dist/zone.js"></script> 
    <script src="node_modules/reflect-metadata/Reflect.js"></script> 
    <script src="node_modules/systemjs/dist/system.src.js"></script> 

    <!-- 2. Configure SystemJS --> 
    <script src="~/lib/js/systemjs.config.js"></script> 

    <script src="~/lib/js/jquery.js"></script> 
    <script src="~/lib/js/bootstrap.js"></script> 
</head> 
<body> 
    <div> 
    @RenderBody() 
    </div> 
    @RenderSection("scripts", required: false) 
    <script type="text/javascript"> 
    @RenderSection("customScript", required: false) 
    </script> 
</body> 
</html> 

Index.cshtml

@{ 
    ViewBag.Title = "ProjectHome"; 
} 

@section styles 
{ 
    <link href="~/lib/css/bootstrap.css" rel="stylesheet" /> 
    <link href="~/css/site.css" rel="stylesheet" /> 
} 

<projecthome-app> 
    <div class="loading">Loading</div> 
</projecthome-app> 

@section scripts 
{ 

} 

@section customScript 
{ 
    System.import('app').catch(console.log.bind(console)); 
} 

systemjs.config.js

(function (global) { 
    // map tells the System loader where to look for things 
    var map = { 
     'app': 'app', // 'dist', 
     '@angular': 'node_modules/@angular', 
     'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api', 
     'rxjs': 'node_modules/rxjs' 
    }; 
    // packages tells the System loader how to load when no filename and/or no extension 
    var packages = { 
     'app': { main: 'main.ts', defaultExtension: 'ts' }, 
     'rxjs': { defaultExtension: 'js' }, 
     'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' }, 
    }; 
    var ngPackageNames = [ 
     'common', 
     'compiler', 
     'core', 
     'forms', 
     'http', 
     'platform-browser', 
     'platform-browser-dynamic', 
     'router', 
     'router-deprecated', 
     'upgrade', 
    ]; 
    // Individual files (~300 requests): 
    function packIndex(pkgName) { 
     packages['@angular/' + pkgName] = { main: 'index.js', defaultExtension: 'js' }; 
    } 
    // Bundled (~40 requests): 
    function packUmd(pkgName) { 
     packages['@angular/' + pkgName] = { main: 'bundles/' + pkgName + '.umd.js', defaultExtension: 'js' }; 
    } 
    // Most environments should use UMD; some (Karma) need the individual index files 
    var setPackageConfig = System.packageWithIndex ? packIndex : packUmd; 
    // Add package entries for angular packages 
    ngPackageNames.forEach(setPackageConfig); 
    var config = { 
     map: map, 
     packages: packages 
    }; 
    System.config(config); 
})(this); 

main.ts

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 
import { AppModule } from './app.module'; 

platformBrowserDynamic().bootstrapModule(AppModule); 

app.module.ts

import { NgModule }  from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule } from '@angular/forms'; 
import { AppComponent } from './app.component'; 

@NgModule({ 
    imports: [ 
     BrowserModule, 
     FormsModule 
    ], 
    declarations: [ 
     AppComponent 
    ], 
    bootstrap: [AppComponent] 
}) 

export class AppModule { } 

app.component.ts

import { Component } from '@angular/core'; 
export class Hero { 
    id: number; 
    name: string; 
} 
@Component({ 
    selector: 'projecthome-app', 
    template: '<h1>hello</h1>' 
}) 
export class AppComponent { 
    title = 'Tour of Heroes'; 
    hero: Hero = { 
     id: 1, 
     name: 'Windstorm' 
    }; 
} 

И, наконец, моя структура проекта

enter image description here

Мои systejs.config.js будут скопированы в Wwwroot/Lib/JS с глотком

+0

Я думаю, вы должны быть созданы новый проект и изменить systemjs.config.js в https://angular.io/docs/ts/ last/quickstart.html –

ответ

0

в вашем systemjs.config.js файл, попробуйте changing-

из

'app': { main: 'main.ts', defaultExtension: 'ts' }, 

в

'app': { main: 'main.js', defaultExtension: 'js' }, 

Посмотрите, если это поможет.

+0

Спасибо за ответ, но по-прежнему та же ошибка :( – jhen

+0

В вашем '_Layout.cshtml' вы используете' es6-shim.min.js', но я не вижу никакого пакета в пакете .json' – Sanket

+0

Вы были правы, я исправил его, но ошибка все еще встречается – jhen

0

Проверьте стек из Консоли разработчика, вероятно, файл имеет многострочный комментарий. Это заставляет трассировать вызов (traceur - транспилер).

Попробуйте настроить removeComments: правда в tsconfig.json, чтобы сделать быструю проверку