在new @ angular/router 3.0.0-alpha.3 ^中找不到provideRouter和RouterConfig

J K*_*ing 11 npm angularjs typescript angular2-routing angular

我正在将一个angular2应用程序迁移到RC2并尝试使用路由器的版本3 alpha.

我也跟着的建立给予plunker角文档路由但我不断收到以下错误:

/ @ angular/router/index"'没有导出的成员'provideRouter'

/ @ angular/router/index"'没有导出成员'RouterConfig'

尝试在app.router.ts文件中使用以下导入时:

import { provideRouter, RouterConfig } from '@angular/router';
Run Code Online (Sandbox Code Playgroud)

我在visual studio中使用带有commonjs模块格式的typescript.

这是我的packages.json的dependecies

"@angular/common": "2.0.0-rc.2",
"@angular/compiler": "2.0.0-rc.2",
"@angular/core": "2.0.0-rc.2",
"@angular/http": "2.0.0-rc.2",
"@angular/platform-browser": "2.0.0-rc.2",
"@angular/platform-browser-dynamic": "2.0.0-rc.2",
"@angular/router": "3.0.0-alpha.3",
"@angular/router-deprecated": "2.0.0-rc.2",
"@angular/upgrade": "2.0.0-rc.2",
"systemjs": "0.19.27",
"core-js": "^2.4.0",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.0-beta.6",
"zone.js": "^0.6.12",
"angular2-in-memory-web-api": "0.0.12"
Run Code Online (Sandbox Code Playgroud)

即使我在我的system.config.js中将angular/route设置为npm cdn,如下所示:

'@ angular/router':' https://npmcdn.com/@angular/router@3.0.0-alpha.3 '

我仍然得到错误.

我甚至尝试使用alpha.4,alpha.5和最新的alpha.6版本.

我尝试删除nodule模块文件夹并强制npm install获取新文件.

题:

有人可以帮我弄清楚为什么导出的memebers提供路由器,RouterConfig无法找到?

谢谢

小智 9

我有同样的问题,使用版本3.0.0-alpha.7解决了它

这是我的package.json:

"dependencies": {
"@angular/common":  "2.0.0-rc.2",
"@angular/compiler":  "2.0.0-rc.2",
"@angular/core":  "2.0.0-rc.2",
"@angular/http":  "2.0.0-rc.2",
"@angular/platform-browser":  "2.0.0-rc.2",
"@angular/platform-browser-dynamic":  "2.0.0-rc.2",
"@angular/router":  "3.0.0-alpha.7",
"@angular/upgrade":  "2.0.0-rc.2",
"systemjs": "0.19.31",
"core-js": "^2.4.0",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.0-beta.6",
"zone.js": "^0.6.12",
"angular2-in-memory-web-api": "0.0.12",
"bootstrap": "^3.3.6",
"contentful": "3.3.14"}
Run Code Online (Sandbox Code Playgroud)

尽管如此,我不会称之为稳定,新的文档https://angular.io/docs/ts/latest/guide/router.html可能会引起误导.


Art*_*iev 5

尝试使用provideRoutes而不是provideRouter

import {provideRoutes} from "@angular/router";
Run Code Online (Sandbox Code Playgroud)

和你的路由:

provideRoutes([
    {path: '', redirectTo: '/myurl'}
])
Run Code Online (Sandbox Code Playgroud)

UPD 现在你根本不需要提供路由器.只需写入路径并从'@ angular/router'导入路由;

import {RouterModule, Routes} from '@angular/router';

const APP_ROUTES: Routes = [
  {path: '', redirectTo: '/somthng', pathMatch: 'full'},
  {path: 'somthng', component: SomthngComponent},
  {path: 'somthng-list', component: SomthngListComponent}
];

export const your_routing = RouterModule.forRoot(APP_ROUTES);
Run Code Online (Sandbox Code Playgroud)