What is Vite?
Vite is a "next generation front-end tooling", as its maintainers claim. Instant dev server, fast Hot Module Reload, easy ...
For further actions, you may consider blocking this person and/or reporting abuse
Great article! Could you add some info about production builds, difference in timing? When using Webpack, the production build often takes longer due to minimization. Would be interesting to see some statistics for Vite.
Another helpful Webpack feature is aliases, that prevent long absolute paths, e.g.
I see Vite has a plugin for it.
Thanks for the kind words!
Regarding performance - Vite uses esbuild under the hood, and esbuild caused quite a commotion in the industry when it was released.
Enough has been written on this matter so I'll just quote.
vitejs.dev/guide/why.html
esbuild.github.io/
While Vite uses ESBuild during development, it actually uses Rollup for bundling production builds, so the comparisons should be between Webpack & Rollup as ESBuild doesn't weigh in here.
Most of the time building for prod isn't spent on transpilation. That's why OP is asking. I'm using SWC with Webpack which is even faster than ESBuild, yet prod builds take much longer due to optimizations like minification, tree-shaking, bundle chunks, etc...
You can also set up aliases in Babel (and not Webpack) using the module-resolver plugin
An extra tip:
When using Yarn >=2, during installation, you'll get a ton of warnings about
esbuild
:You can suppress them by adding the following to yarnrc.yml:
Here's another tip if you need to access your Vite env vars within the config:
I found this useful when setting up local https for the devserver.
This is great, even if I'm already using Vite for all my personal projects anyway. One thing I've discovered: if your project was written with Create-React-App, don't even bother ejecting. Just delete everything that wasn't your hand-written code, retaining the src and assets and images and all that, adjust the package.json file as you specified, and iterate until it builds. It takes remarkably little time, and Vite is such a greater pleasure to work with compared to CRA.
I've seen that there could still be incompatibilities with Jest.
Without using the @vite-jest plugin (Authors are working on it yet), how could I configure vite to use jest with testing-library?
Thank you very much for the work and information👌
I need help with a project that has been around for approximately 7 years and currently uses Webpack and Babel with specific configurations. I'm seeking support to replace Vite in this particular project.
Thank you.
Is there a way to use vite with multiple entries? Meaning having different bundles load in more than one
index.html
file?Cheers,
Cezar
Why would one want to do this from a practical standpoint? Or rather, what are the use cases that requires this?
Speed and control. Webpack, especially as part of create-react-app, is enormous, and it comes with dozens of side cases and plug-ins that you just do not need. Vite's build system is significantly faster and its dev server lighter weight, plus the plug-ins and features are limited to exactly what you specify, and nothing else.
You can create your own webpack config and not rely on RCA. We have created our own react starter kit, it's pretty small and has only what is need for the project. Creating webpack config is super easy and works great.
That's true, and I don't disagree. My experience, professionally, has been that most web developers out of bootcamp start with create-react-app as they've been taught, and when the project grows to the point where it no longer serves them well, have to struggle with eject, cra-rewire, or manual migration. Webpack's config is easy to learn, but so is Vite's, and I find Vite's dev-UX just a bit more pleasant.
Does Vite has Webpack Module Federation feature?
There is a vite plugin for Module Federation github.com/originjs/vite-plugin-fe...
Great article! Thanks for sharing