DEV Community

Nada Aldubaie
Nada Aldubaie

Posted on

Vite Vs Create React App "CRA"

First of all let me give you intersting fact about Vite
Vite is French word for "fast", pronounced /vit/

1.Create Project:
CRA: npx create-react-app app-name
Vite: npm create vite@latest app-name
then you need to install npm manually,
npm i

2.Framework Support:

CRA: Designed for creating React projects.
Vite: It allows you to create in different frameworks for your instance :
Vanilla
Vue.js
React
with typescript or even javascript and can be used with various frameworks.🛠

3.Server:

Vite: Comes with a development server that supports Hot Module Replacement (HMR), enabling fast updates without a full page reload.🚀
CRA: Provides a development server with HMR support for React components, facilitating a smooth development experience.

4.Time of Create:

The total milliseconds takes to create Vite is very lower than to create CRA.

5.Build Performance:

Vite: Known for its fast development server and build times, thanks to native ESM support and optimized build processes.
CRA: Offers good performance, but Vite is the best choice of speed.

The main reason why Vite.js is faster and more simple than CRA is becuase it has less dependencies when we create React project.🎯


Conclusion:

Use Vite if: You prefer faster development servers and build times. You want a more flexible, framework-agnostic build tool. Native ESM support is essential for your project.
Use Create React App if: You prefer a zero-configuration setup for a quick project start. You are primarily working on React projects.

Image description

Top comments (1)

Collapse
 
webjose profile image
José Pablo Ramírez Vargas

The main reason why Vite is faster is that it doesn't build while in serve mode. Instead, it uses ESBuild to do instant transpilation of what is requested. This is why, for example, Vite projects can only be used for building for single-spa when used with SystemJS: Vite cannot provide SystemJS modules while in serve mode, only ES modules.

If you create a CRA project, and then create a Vite version of the same, you'll notice that CRA builds the project even for development serving, but Vite merely starts the server up.