angular: primeng not working with ngcc
š Bug report
Command (mark with an x
)
ng build --prod
Is this a regression?
No
Description
I have a project with PrimeNg dependency. When I upgraded to 8.0.0-rc.1 my project compiled properly. But if I enable Ivy flag in tsconfig.json:
āangularCompilerOptionsā: { āenableIvyā: true, āallowEmptyCodegenFilesā: true },
I get a lot of error messages about incorrect module usage when I build the project.
š¬ Minimal Reproduction
- Create new project with Angular CLI 8.0.0-rc.1
- Add Primeng dependency and import its modules into AppModule.
š„ Exception or Error
ERROR in node_modules/primeng/components/confirmdialog/confirmdialog.d.ts(64,22): error TS-996002: Appears in the NgModule.imports of SharedModule, but could not be resolved to an NgModule class
node_modules/ngx-filter-pipe/src/app/shared/ngx-filter-pipe/ngx-filter.module.d.ts(1,22): error TS-996002: Appears in the NgModule.imports of SharedModule, but could not be resolved to an NgModule class
š Your Environment
Angular CLI: 8.0.0-rc.1
Node: 11.3.0
OS: win32 x64
Angular: 8.0.0-rc.1
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.800.0-rc.1
@angular-devkit/build-angular 0.800.0-rc.1
@angular-devkit/build-optimizer 0.800.0-rc.1
@angular-devkit/build-webpack 0.800.0-rc.1
@angular-devkit/core 8.0.0-rc.1
@angular-devkit/schematics 8.0.0-rc.1
@angular/cdk 8.0.0-beta.2
@angular/http 8.0.0-beta.10+1.sha-a28b3e3
@angular/material 8.0.0-beta.2
@ngtools/webpack 8.0.0-rc.1
@schematics/angular 8.0.0-rc.1
@schematics/update 0.800.0-rc.1
rxjs 6.4.0
typescript 3.4.5
webpack 4.30.0
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Reactions: 4
- Comments: 24 (15 by maintainers)
@sergey-morenets at this moment, Iām afraid you canāt yet. We are still experiencing incompatibilities with ngcc for packages that do not follow APF (Angular Package Format), of which PrimeNG is one example. We are working on resolving those incompatibilities in ngcc though.
@speige Any updates on this? PrimeNG team recently released 8.0 but itās not compatible with Angular 8.2.0-next.1 in Ivy mode.
@sergey-morenets You might consider opening an issue with primeng asking them to use https://github.com/ng-packagr/ng-packagr when publishing to npm. Iām the author of https://github.com/rintoj/ngx-virtual-scroller & my library also broke ivy until I used ng-packagr.
I started a design doc https://hackmd.io/qn0asUnzTHWHj8s5Nn5iFA
Any updates on this?
I think that an ngcc config file that will be placed in the project using such a package could solve this issue. The config could specify what typings file to use for a given entry-point path.
From analyzing other sitatuations where ngcc did not process a package, I see two causes why PrimeNG is not being processed:
typings
key in itspackage.json
It works for me in 9.0.0-rc3 and rc4 (didnāt work before)
Hi @speige
I would love to do that. But I doubt I have enough technical skills to explain in details what should be changed on PrimeNg side. I guess the Angular team member will do it better and in cleaner way.
I also found an issue that might relate to the current ticket: https://github.com/primefaces/primeng/issues/7627
The above error typically means that ngcc didnāt run.
Will have a look at it in the coming days.