TypeScript nie może znaleźć stworzonych modułów

0

Cześć,
Próbuję ogarnąć Angulara, jednak napotkałem na problem. Kiedy próbuję zbudować swoją aplikację dostaję błędy, że TypeScript nie może znaleźć stworzonych przeze mnie modułów:

ERROR in src/app/app-routing.module.ts:3:35 - error TS2307: Cannot find module './user-list/user-list.component'.
3 import { UserListComponent } from './user-list/user-list.component';
src/app/app-routing.module.ts:4:35 - error TS2307: Cannot find module './user-form/user-form.component'.
4 import { UserFormComponent } from './user-form/user-form.component';

Próbowałem różnych opcji ze ścieżką, ale żadna nie pomogła. Katalogi user-form i user-list znajdują się w katalogu src.
Tak wygląda app-routing.module.ts:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { UserListComponent } from './user-list/user-list.component';
import { UserFormComponent } from './user-form/user-form.component';


const routes: Routes = [
	{ path: 'users', component: UserListComponent },
	{ path: 'adduser', component: UserFormComponent }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

Gdyby potrzebny był wgląd do innych plików to proszę o informację i zrobię update'a posta. Będę wdzięczny za wszelkie sugestie.

1

Skoro app-routing.module masz w katalogu app, ścieżka ./user-list/user-list.component będzie wskazywała na app/user-list/user-list.component - relatywnie do pliku.

1

Problem jest ze ścieżką, ilość kombinacji nie jest tak duża do sprawdzenia przecież, ale skoro już chcesz gotowe rozwiązanie:

W pliku tsconfig masz zapis:

"baseUrl": "./",

Co oznacza mniej więcej tyle, że ścieżki absolutne muszą się zaczynać od głównego katalogu, w Twoim przypadku będzie to np.

import { UserListComponent } from 'src/user-list/user-list/user-list.component';

Jeżeli chcesz ścieżki relatywne to możesz zrobić w ten sposób:

import { UserListComponent } from '../user-list/user-list/user-list.component';

To doradzał Ci kolega @Patryk27, jednak pewnie przekleiłeś z jego posta błędną ściężkę zamiast go przeczytać i zrozumieć.

Odpaliłem Twój projekt w Visual Studio Code, ale pewnie inne IDE jak np. WebStorm też sobie by z tym poradził, możesz usunąć import a potem za pomocą IDE zrobić import (IDE potrafi przeczytać tsconfig i dobierze poprawną ścieżkę).

Zauważyłem też, że masz skopane mnóstwo ścieżek - z czego to wynika? Piszesz projekt bez uruchamiania? Kopiujesz?

1 użytkowników online, w tym zalogowanych: 0, gości: 1