Предоставление Router и RouterConfig не найдено в новом @angular/router 3.0.0-alpha.3 ^

Я переношу приложение angular2 в RC2 и пытаюсь использовать альфа-версию маршрутизатора версии 3.

Я следил за настройкой plunker, предоставленной angular docs для маршрутизации  Но я продолжаю получать следующие ошибки:

/@angular/router/index "'не имеет экспортированного элемента" обеспечить Router "

/@angular/router/index" 'не имеет экспортированного элемента' RouterConfig '

при попытке использования следующих импортных файлов в файле app.router.ts:

import { provideRouter, RouterConfig } from '@angular/router';

Я использую typescript в визуальной студии с форматом модуля commonjs.

Вот зависимости от моих пакетов. json

"@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"

Даже если я установил angular/route в npm cdn в моем файле system.config.js следующим образом:

'@angular/router': 'https://npmcdn.com/@angular/[email protected]'

Я все еще получаю ошибку.

Я даже попытался использовать альфа-4, альфа-5 и последнюю версию alpha.6.

Я попытался удалить папку модуля узла и принудительно установить npm для получения новых файлов.

Вопрос:

Может кто-нибудь помочь мне понять, почему экспортированные члены предоставлять Router, RouterConfig не могут быть найдены?

Спасибо

Ответ 1

У меня была такая же проблема, она была решена с использованием версии 3.0.0-alpha.7

Вот мой пакет .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"}

Наверху я бы не назвал его стабильным, а новая Документация https://angular.io/docs/ts/latest/guide/router.html может быть немного пропущена.

Ответ 2

Попытайтесь использовать enableRoutes вместо предоставления Router

import {provideRoutes} from "@angular/router";

и ваша маршрутизация:

provideRoutes([
    {path: '', redirectTo: '/myurl'}
])

UPD На данный момент вам вообще не нужно предоставлять Routers. Просто напишите путь и импортируйте Маршруты от '@ 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);

Ответ 3

Также боролся с этим в течение нескольких часов, обновлялся до бета7. Не забудьте изменить system.config.js, поскольку они изменили имена пакетов на index.js(например, "platform-browser-dynamic/platform-browser-dynamic.js" теперь называется "platform-browser-dynamic/index.js".

Но теперь я не могу заставить работать по умолчанию, не так ли?

EDIT: маршрутизация по умолчанию проста:

{
    path: '',
    redirectTo: 'index.php/component/atkstat/dashboard'
}, 

Ответ 4

Вам нужно добавить эту строку как @ angular/router No umd для маршрутизатора еще

packages['@angular/router'] = { main: 'index.js', defaultExtension: 'js' };

Посмотрите package.json и system.config.js этого, может помочь вам

http://plnkr.co/edit/y31K7xbiQSVH59qsAOZF?p=preview