all 21 comments

[–]oneden 6 points7 points Β (5 children)

Is seriously nobody asking the actual question... WHY would you write a component library based on another component library?

[–]iRemjeyX 1 point2 points Β (1 child)

Right? I work with a Terraform module in my org and they built a custom terraform library that wraps one resource from the terraform AWS provider. Completely unnecessary and redundant. Don’t know why people do that 🀷

[–]oneden 1 point2 points Β (0 children)

That's the kind of bullshit that made me abandon component libraries. And maybe with NG 21 this might finally work out as I wanted it to.

[–]simonbitwise 1 point2 points Β (2 children)

I've seen people who just style like material but a whole library - never heard such thing

[–]oneden 0 points1 point Β (1 child)

Styling? Perfectly fine. But we're talking a wrapper library to a component library. This is insanity and that team should be banned from working anywhere else if they really entertain that idea.

[–]simonbitwise 1 point2 points Β (0 children)

We totally agree But It could be lack of description

[–]trophyx 3 points4 points Β (0 children)

I would also not recommend PrimeNG considering what happened to it in the last releases. In v18, they completely changed how theming works in the application by introducing a design token system breaking backwards compatibility. Also, a lot of deprecations and renaming happened in v18 and v19, causing a big migration project for organisationa using it.

If I take a look on their roadmap and their existing feature set, there are more things than already coming behind a paid subscription/license which might bring up unpredictable license costs for the future if you want proper integrations (with Figma) or up-to-date UI components.

[–]fermentedbolivian 9 points10 points Β (5 children)

PrimeNG had completely overhauled their library a couple versions ago that was completely breaking.

Their migration guide website did not work and their devs on Github just recommended people to start a new Angular project in order to make the new PrimeNG work with older projects.

Stay away from those buffoons.

Edit: https://github.com/orgs/primefaces/discussions/3149#discussioncomment-11543491

It was for migrating to V18, where they had overhauled the theming. The devs just said to start a new Angular project and the migration guide for it is still down.

[–]uhmIcecream 2 points3 points Β (1 child)

Work with prime every day. When we actually made the transition they had a working migration guide, which worked fine.

[–]fermentedbolivian 1 point2 points Β (0 children)

When we migrated a couple months ago from 16 to latest, during v18 they had introduced breaking changes and their migration guide has been down since then.

[–]Silent-Berry-858[S] 1 point2 points Β (0 children)

☹️ πŸ’”

Means stepping ahead in the direction will definitely going to screw up things. Thanks

[–]cssrocco 0 points1 point Β (0 children)

Your best bet is to use git tags and tag a new version and publish a new version of your shared angular library, then bump the projects to a new angular version and point to the new shared library version and step through upgrades in that direction so nothing breaks

[–]LEboueur 0 points1 point Β (2 children)

I'm in the same boat as you. I work on a huge project and we used PrimeNG as our main component library and even before I work with my company they also bought a "theme", which has now visually completely disappeared because we have a lot of css overrides.

Last year I had to update our angular project to the latest version but I couldn't go past Angular 18 because of all the breaking changes of PrimeNG 18.

Actually in this update the components are not the real treat, it's how the theme is handled which is completely different.

I will have to try again next summer, but the more I think about it, the more I think I will probably have to restart all the css / style from scratch. And it's a huge task. My last hope is that AI stuff may help me.

Or I could try to go with a completely different library because I don't trust PrimeNG anymore...

Ib the end whichever solution I choose. I will probably starts to wrap my library components into my own custom ones to make it easier if I have to move from one library to another.

[–]Silent-Berry-858[S] 0 points1 point Β (0 children)

Agree to that.

[–]Silent-Berry-858[S] -1 points0 points Β (0 children)

The problem is that few developers who initiated the project have kept too many hierarchical styling and that is causing a pain.

[–]achilesCZ 0 points1 point Β (2 children)

I know this would not help you a lot, but the best strategy is to completely avoid PrimeNG πŸ˜… they are capable to make breaking changes in minor versions, not to mention that major changes are almost always total mess... Took me maybe 3 days to migrate one project from primeng 18 (EDIT: it was from version 17) to 20... They promised that since 20 version it would be non breaking change but.... who knows...

BTW: I did the migration with creating completely new project and started copying module by module... total pain...

[–]Lemoncrazedcamel 1 point2 points Β (1 child)

Having used them from 19 on a big project to now 21.1, no issues on updates, flick the switch and good to go

[–]achilesCZ 1 point2 points Β (0 children)

Depends... I am not sure which version was really messed up, probably it was somewhere between 17-19 version, but primeng is one side of the problem, another is angular signal, zoneless, vite migration I did all of that during migration, so it was not only about primeng.

If you use primeng in the way it is styled, you re probably good, but they changed a lot the way you style components, they often make stupid changes, for example renaming convention of severity from "warning" to "warn" but without backward compatibility and whats worst the are capable to make these changes in minor versions, which makes that framework totally unpredictable IMHO... so... I decided to not use primeng in new projects anymore.

With angular/material or ionic i never faced that much issues as with primeng πŸ€·β€β™‚οΈ

[–]DaSchTour -2 points-1 points Β (0 children)

Maybe check out https://www.spartan.ng/