ОБНОВЛЕНИЕ На мой вопрос
Я добавил "BaseUrl": "./",
к tsconfig.app.json
и получил следующую ошибку:
ошибка TS5023: неизвестная опция компилятора 'BaseUrl'.
Я думаю, они имеют в виду tsconfig.json
, а baseUrl уже добавлен.
Конец обновления
Я обновил свой угловой проект до углового 7 , используя следующие команды:
npm install @angular/animations@latest @angular/common@latest
@angular/compiler@latest @angular/core@latest @angular/forms@latest
@angular/http@latest @angular/platform-browser@latest
@angular/platform-browser-dynamic@latest
@angular/platform-server@latest
@angular/router@latest --save
И
npm install @angular-devkit/build-angular@latest
@angular/compiler-cli@latest
@angular/cli@latest
@angular/language-service@latest --save-dev
И
npm install core-js@latest zone.js@latest --save
И
npm install @types/jasmine@latest @types/node@latest
codelyzer@latest karma@latest karma-chrome-launcher@latest
karma-cli@latest karma-jasmine@latest
karma-jasmine-html-reporter@latest
jasmine-core@latest jasmine-spec-reporter@latest
protractor@latest tslint@latest --save-dev
И
npm install typescript@latest --save-dev
npm install rxjs@latest rxjs-compat@latest --save
npm install rxjs-tslint@latest --save-dev
Получается package.json
:
{
"name": "angular",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@agm/core": "^1.0.0-beta.3",
"@angular/animations": "^7.0.3",
"@angular/cdk": "^7.0.3",
"@angular/common": "^7.0.3",
"@angular/compiler": "^7.0.3",
"@angular/core": "^7.0.3",
"@angular/flex-layout": "^7.0.0-beta.19",
"@angular/forms": "^7.0.3",
"@angular/http": "^7.0.3",
"@angular/material": "^7.0.3",
"@angular/material-moment-adapter": "^7.0.3",
"@angular/platform-browser": "^7.0.3",
"@angular/platform-browser-dynamic": "^7.0.3",
"@angular/platform-server": "^7.0.3",
"@angular/router": "^7.0.3",
"angularx-qrcode": "^1.2.4",
"bootstrap": "^4.1.3",
"core-js": "^2.5.7",
"font-awesome": "^4.7.0",
"hammerjs": "^2.0.8",
"html2canvas": "^1.0.0-alpha.12",
"jspdf": "^1.4.1",
"moment": "^2.22.2",
"rxjs": "^6.3.3",
"rxjs-compat": "^6.3.3",
"tether": "^1.4.4",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.10.5",
"@angular/cli": "^7.0.5",
"@angular/compiler-cli": "^7.0.3",
"@angular/language-service": "^7.0.3",
"@types/jasmine": "^2.8.11",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^10.12.3",
"codelyzer": "^4.5.0",
"jasmine-core": "^3.3.0",
"jasmine-spec-reporter": "^4.2.1",
"karma": "^3.1.1",
"karma-chrome-launcher": "^2.2.0",
"karma-cli": "^1.0.1",
"karma-coverage-istanbul-reporter": "~2.0.0",
"karma-jasmine": "^1.1.2",
"karma-jasmine-html-reporter": "^1.4.0",
"protractor": "^5.4.1",
"rxjs-tslint": "^0.1.5",
"ts-node": "~5.0.1",
"tslint": "^5.11.0",
"typescript": "^3.1.6",
"webpack": "^4.25.1"
}
}
Вкл. ng serve --port=8000
Я получаю следующую ошибку:
core.js: 12584 ОШИБКА Ошибка: Uncaught (в обещании): Ошибка: не удается найти
module '../app/dashboard/dashboard.module' Ошибка: не удается найти модуль
'../App/dashboard/dashboard.module'
в ленивом объекте пространства имен $ _lazy_route_resource: 5
в ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invoke
(zone.js: 388)
в Object.onInvoke (core.js: 14143)
на
Он работал, когда я использовал Angular 6
, и я получил его только после обновления.
Я попробовал решение , упомянутое на github:
В сущности, есть три возможных решения:
a) Использование относительного пути loadChildren: '. / ...
b) Использование абсолютного пути, начинающегося с loadChildren: 'src / app /...
в) tsconfig.app.json -> BaseUrl: "./"
И ни один из них не работал для меня.
Вот мой файл маршрутизации при запуске:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { LoginComponent } from './login/login.component';
import { ForgotPasswordComponent } from './forgot-password/forgot-password.component';
const routes: Routes = [
{
path: 'login',
component: LoginComponent
},
{
path:'',
component: LoginComponent
},
{
path: 'forgot',
component: ForgotPasswordComponent
//canActivate: [AuthGuardService]
},
{
path:'dashboard',
loadChildren: './app/dashboard/dashboard.module#DashboardModule'
},
{
path: '**',
redirectTo: 'login',
pathMatch: 'full'
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
Я пропускаю обновление или Angular 7 подразумевает, что мы должны изменить URL-адреса маршрутизации для конкретной новой формы?
Цитируем другое решение из ответа на github, в котором предполагается, что проблема в форме baseUrl
:
@ filipesilva Я видел ваш коммит угловой / devkit @ 33af719
перемещен из файла tsconfig.app.json в файл src / tsconfig.json, но не в него
значение ./, поэтому вновь созданные приложения v6 от CLI не смогут
найти модули отложенной загрузки с путями, определенными как документация отложенной загрузки.
Я предлагаю это изменение. Он сохраняет baseUrl: "./" на tsconfig.json и
каждый проект имеет свой tsconfig.app.json, который перезаписывает baseUrl
имущество. Я надеюсь, что это согласуется с мультипроектным подходом и
инструменты.
Если вы предпочитаете использовать относительный URL для loadChildren, он должен быть
обновление документации и учебного пособия.