2
votes

I have an issue:

Based on the trace, my code is looking for the router module in the wrong place, it should be looking in my node modules\@angular folder but its looking in my src\app\ folder, how can i fix this?

How I got here

I've installed angular 2 using angular cli, when I go to use the router module to create my routes, I import it like so:

import { RouterModule } '@angular/router/src/router_module';

and then use it passing in my routes like so:

export const routing = RouterModule.forRoot(APP_ROUTES, {enableTracing: true});

now when it goes to compile i get the following error:

Failed to compile.

./src/app/app.routing.ts Module not found: Error: Can't resolve

'@angular/router/src/router_module' in 'C:\path\to\src\app' <== important part ?

@ ./src/app/app.routing.ts 3:0-84

@ ./src/app/app.module.ts

@ ./src/main.ts

@ multi webpack-dev-server/client?http://localhost:4200 ./src/main.ts

I've checked that node module/@angular/router/src/router_module exists, and it does... I'm really stumped

angluar cli v1.0.1

angular v 4.4.6

2
Try using this as your import: import { RouterModule } from '@angular/router';, Get rid of the /src/router_module on the end of the path, and don't forgot the from. - R. Richards
That did it for me, thanks alot, put it as an answer and i'll select it - Jay

2 Answers

8
votes

Use this as your import:

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

Get rid of the /src/router_module on the end of the path, and don't forgot the from.

I don't know what IDE you are using, but I use VS Code. Sometimes, when I use the Ctrl+. (control period) to get the IDE to add a reference for me, I get some extra stuff in the path like what you had.

Something to watch out for!

2
votes

Make sure to check the import {RouterModule} statement , VScode adds up unnecesary path. Recompile it with just below statement

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