2016-09-01 74 views
6

我在更新到RC6后让我的应用程序运行时遇到了一些问题。SystemJS的角度2 RC6问题

由于官方示例from changelog,我更改了我的systemjs。

但我仍然得到像这样的编译错误: “Module”“D:/ Myproject/WebClient/node_modules/@ angular/router/index”'没有导出成员'ROUTER_DIRECTIVES'。“

它看起来像编译器会默认index.js文件,而不是UMD包...的编译是由一饮而尽任务具有以下选项完成的:

"module": "system", "moduleResolution": "node", "target": "ES5", "experimentalDecorators": true, "emitDecoratorMetadata": true, "allowSyntheticDefaultImports": false 我得到这个错误的路由器模块和形式模块。

路由器是V3.0.0,rc.2和形式是V.2.0.0-RC6

觉得更是我的systemJs不正确读取无论如何问题。

SystemJS:

var map = { 
'app': 'public/app', 
'@angular/core': 'npm:@angular/core/bundles/core.umd.js', 
'@angular/common': 'npm:@angular/common/bundles/common.umd.js', 
'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js', 
'@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js', 
'@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', 
'@angular/http': 'npm:@angular/http/bundles/http.umd.js', 
'@angular/router': 'npm:@angular/router/bundles/router.umd.js', 
'@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js', 
'rxjs': 'npm:rxjs', 
'symbol-observable': 'npm:symbol-observable', 
'moment': 'npm:moment', 
'ng2-charts': 'npm:ng2-charts', 
'ng2-translate/ng2-translate': 'npm:ng2-translate', 
'angular2-highcharts': 'npm:angular2-highcharts', 
'highcharts/highstock.src': 'npm:highcharts', 
'primeng': 'npm:primeng' 
}; 

var packages = { 
'app': { main: 'main', defaultExtension: 'js' }, 
'rxjs': { main: 'Rx.js', defaultExtension: 'js' }, 
'moment': { main: 'moment', defaultExtension: 'js', type: 'cjs'}, 
'symbol-observable': { main: 'index.js', defaultExtension: 'js' }, 
'ng2-charts': { main: 'ng2-charts', defaultExtension: 'js' }, 
'ng2-translate/ng2-translate': { main: 'ng2-translate', defaultExtension: 'js' }, 
'angular2-highcharts': { main: 'index', defaultExtension: 'js' }, 
'highcharts/highstock.src': { main: 'highstock.src', defaultExtension: 'js' }, 
'primeng': { defaultExtension: 'js' }s 
}; 


System.config({ 
map: map, 
packages: packages, 
paths: { 
    // paths serve as alias 
    'npm:': 'node_modules/' 
} 
//format: 'register' 
}); 

Aynbody什么想法? 在此先感谢

按照新的变化

回答

3

在RC6过时的指令被删除,默认角度的功能ngModule在RC5介绍,所以你必须从@angular/router配置RouterModuleRouting文档来配置你的路由,然后你可以使用指令由RouterModule提供。

+0

谢谢,其他外部软件包还有一些问题,但基本上它是在删除所有指令的情况下运行的。 –

3

您必须从所有组件中删除ROUTER_DIRECTIVESFORM_DIRECTIVESCORE_DIRECTIVES。相反,为所有组件创建模块。导入BrowserModule在您的AppModule和导入FormModule您需要的形式指令的所有模块。

进一步的信息可以在这里找到:https://angular.io/docs/ts/latest/guide/architecture.html

一种的AppModule看起来例如如下所示:

import {NgModule} from '@angular/core'; 
import {BrowserModule} from '@angular/platform-browser'; 
import {AppComponent} from './app.component'; 
// Other imports are removed 

@NgModule({ 
    imports: [BrowserModule, HttpModule, LoginModule, routing], 
    declarations: [AppComponent], 
    providers: [ 
    Logger, 
    LOG_LOGGER_PROVIDERS, 
    AuthenticationService, 
    AccountService 
    ], 
    bootstrap: [AppComponent] 

}) 

export class AppModule { 
}