provideRouter и RouterConfig не найдены в новой версии @angular/router 3.0.0-alpha.3^
Я перевожу приложение angular2 на RC2 и пытаюсь использовать альфа-версию маршрутизатора версии 3.
Я следил за настройкой плункера, предоставленного угловыми документами для маршрутизации, но я продолжаю получать следующие ошибки:
/ @ angular / router / index "'не имеет экспортированного члена' provideRouter '
/ @ angular / router / index "'не имеет экспортированного члена RouterConfig'
при попытке использовать следующий импорт в моем файле app.router.ts:
import { provideRouter, RouterConfig } from '@angular/router';
Я использую машинопись в визуальной студии с модулем формата 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 в моем sy stem.config.js, вот так:
'@ angular / router': ' https://npmcdn.com/@angular/router@3.0.0-alpha.3'
Я все еще получаю ошибку.
Я даже пытался использовать alpha.4, alpha.5 и последнюю версию alpha.6.
Я попытался удалить папку модуля nodule и заставить npm установить новые файлы.
ВОПРОС:
Может кто-нибудь помочь мне разобраться, почему экспортируемые члены предоставляют Router, RouterConfig не может быть найден?
Спасибо
4 ответа
У меня была такая же проблема, я решил ее с помощью версии 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"}
Хотя я бы не назвал его стабильным, а новая документация https://angular.io/docs/ts/latest/guide/router.html может быть немного ошибочной.
Попробуйте использовать provideRoutes вместо provideRouter
import {provideRoutes} from "@angular/router";
и ваш маршрут:
provideRoutes([
{path: '', redirectTo: '/myurl'}
])
UPD На данный момент вам вообще не нужны provideRouters. Просто напишите путь и импортируйте маршруты из "@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);
Вам нужно добавить эту строку как @angular/router. Пока нет маршрутизатора.
packages['@angular/router'] = { main: 'index.js', defaultExtension: 'js' };
Посмотрите package.json и system.config.js, это может помочь вам
Также боролся с этим в течение нескольких часов, обновившись до бета7. Не забудьте изменить system.config.js, так как они изменили имена пакетов на index.js (например, "platform-browser-dynamic / platform-browser-dynamic.js" теперь называется "platform-browser-dynamic / index.js").
Но теперь я не могу заставить работать маршрут по умолчанию, не так ли?
РЕДАКТИРОВАТЬ: маршрутизация по умолчанию просто:
{
path: '',
redirectTo: 'index.php/component/atkstat/dashboard'
},