3 ms·
I agree that my original complaint was a bit of an overreaction, but I still think my complaint about maintenance and backwards compatability is true. I've been
by fy20 5y ago
I agree that my original complaint was a bit of an overreaction, but I still think my complaint about maintenance and backwards compatability is true. I've been doing frontend development for over 15 years, and SPAs for at least 10 (I started with Backbone.js), so saying 'people like me come in' is not accurate or very fair. Nowadays I mostly do backend Typescript, mainly so I can avoid issues like this.
The reason why I choose create-react-app when I first started this project was because it was most popular and recommended way to create a React app. I've hand rolled Webpack and Babel configurations before, and upgrading to the next major version is alwyays a headache, which I wanted to avoid again. Sticking to old versions is equally bad because if someone wants to try something new it's not always possible (two of the biggest frontend apps our company has are stuck on React 15). I figured it's an official project from Facebook, so will be around for a long time and well maintained, but obviously that assumption was wrong for my use case.
The upgrade instructions don't say much [0], but in my case it was a dependency of a dependency of create-react-app which was causing issues. Because of the way create-react-app is built, it isn't usually possible to downgrade or upgrade specific dependencies, or change the configuration for certain parts of it. You just have to go with what they suggest and hope that works for you - which in my case it did not.
In the backend world you will be able to find a LTS version that receives security updates and critical bug fixes for a long time, while in the frontend world your choice is upgrade to a newer version - which often has breaking changes - or stick with the old version - bugs and all.
I gave up with Vite because of the issues I had and went back to create-react-app. I've used it successfully on other - much smaller - projects, but yes for this project it isn't the right tool. Right now I'm trying to make the ejected version do what I need and fix the dependency issues, but if you have any suggestions of what else to try I'm all ears.
[0] https://create-react-app.dev/docs/updating-to-new-releases/ https://create-react-app.dev/docs/updating-to-new-releases/