Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory'

I get this below error after upgrading my angular-cli

ERROR in Template parse errors:
Can't bind to 'index' since it isn't a known property of 'tag'. ("own)="handleKeydown($event, item)"
             (onTagEdited)="onTagEdited.emit(item)"
             [ERROR ->][index]="i"
             [attr.tabindex]="readonly ? -1 : 0"
             [class.readonly]="readonly""): TagInputComponent@16:13

ERROR in ./src/main.ts
Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in 'D:\xxxx\yyyy\eeeee\eeee\src'
 @ ./src/main.ts 5:0-74
 @ multi ./src/main.ts

This error happens when i run ng build --prod and works fine when i run ng build without any parameters,

like image 432
Karthikeyan VK Avatar asked Mar 10 '17 12:03

Karthikeyan VK


5 Answers

When you run the ng build in angular 2, latest angular-cli automatically runs with --aot parameter (ahead of time compilation), so it is trying to optimize your code. You are having a package that is not yet compatible for optimizing. So you need update to your packages. Most probably the packages that has **forRoot()** in your app.module.ts

I recommend to update all packages.

Easy way to update your package is to use ncu npm package as in below, which i got it from How do I correctly upgrade angular 2 (npm) to the latest version?

Install

npm install -g npm-check-updates

Usage

ncu for display

ncu -u for re-writing your package.json

and run npm install to update your packages

If above did not work, you might need to update your code for aot compliance. Refer this url below to make changes in your code. https://medium.com/@isaacplmann/getting-your-angular-2-library-ready-for-aot-90d1347bcad

like image 69
Palanivelu Samudi Avatar answered Oct 19 '22 20:10

Palanivelu Samudi


I had the same issue and how I ended up resolving it was: Delete the enhanced-resolve module from node_modules and then run

npm install [email protected]

After that aot builds worked as expected...

like image 30
user2094257 Avatar answered Oct 19 '22 21:10

user2094257


Use:

ng build --env=prod 

instead of:

ng build --prod
like image 28
Byron Avatar answered Oct 19 '22 19:10

Byron


Faced second part of this issue.

ERROR in ./src/main.ts
Can't resolve './$$_gendir/app/app.module.ngfactory'

Resolved it by updating angular/cli to 1.2.6 for angular 4

  1. Remove node_modules folder
  2. Update "@angular/cli": "1.0.4" to "@angular/cli": "1.2.6" in package.json under devDependencies
  3. Run npm install

Then executing "ng build --prod" successfully generated the production build.

like image 13
Saravanan Sachi Avatar answered Oct 19 '22 21:10

Saravanan Sachi


Same error after upgrading from Angular 6 to 7.1.4. I followed the instructions found here.

The error returned was:

ERROR in ./src/main.server.ts
Module not found: Error: Can't resolve './app/app.server.module.ngfactory'

When trying to pre-render using the command.

ng run [my-project-name]:server

The reason was I enabled the Ivy Render which is not production ready. By removing the lines:

"angularCompilerOptions": {
  "enableIvy": true
} 

From the tsconfig.json file, all was well in the world again.

like image 2
Jason Avatar answered Oct 19 '22 19:10

Jason