cannot determine the module for component angular 5
I'm getting following error when I build the Angular app using "ng build --prod". This is working when I build with Angular 4 and getting error with Angular 5. With Angular 5 "ng serve" is working perfectly.
ERROR in Error: Cannot determine the module for class TimeAgoPipe in mypath/node_modules/time-ago-pipe/time-ago-pipe.ts! Add TimeAgoPipe to the NgModule to fix it.
Getting error for https://www.npmjs.com/package/time-ago-pipe
Any solutions ?
Solution 1:
Check Case Sensitivity
import { MyComponent } from "./User/my-component";
In my case, the problem was that the folder user was created with U as capital in my import statement. But actually, on disk, it was in small-case. When I changed the pathname to user (with u lower case) in my import statement, it worked for me.
import { MyComponent } from "./user/my-component";
So check the case sensitivity, of your import path.
Solution 2:
Angular 5 and specifically angular cli 1.5 has default ahead of time compilation turned on and it needs to know module for all components/pipes etc. that it finds in your project folder if you have some components that aren't declared in any module it will throw errors.
You can either declare TimeAgoPipe
in some module:
@NgModule({
declarations: [TimeAgoPipe, ...]
})
export class AppModule {}// for example can be any other used module
or try running build without ahead of time compilation resulting code will work slower
ng build --prod --aot=false
third way if you don't use that pipe at all you can add it to excluded files in tsconfig.json
{
...
"exclude": [ "path/to/unused/component.ts", ... ]
}