How to Migrate from create-react-app to Vite using Jest and Browserslist


As the JavaScript ecosystem evolves, so do the tools and frameworks we use in web development. Vite, a build tool created by Evan You, the same mind behind Vue.js, has gained significant attention for its speed and developer-friendly features. In this guide, we’ll explore how to migrate from Create React App (CRA) to Vite while ensuring compatibility with Jest for testing and Browserslist for defining supported browsers.

Why Migrate to Vite?

While Create React App has served the React community well, Vite offers several advantages:

  1. Blazing Fast Development: Vite’s development server is incredibly fast, providing near-instant feedback during development.
  2. Efficient Build Process: Vite leverages native ES modules to create smaller and more efficient production builds.
  3. Vue-Style Plugin System: Vite’s plugin system is inspired by Vue.js, making it easy to extend and customize.
  4. Svelte and React Support: Vite supports not only Vue.js but also React and Svelte, making it a versatile choice for various projects.

Migration Steps:

Follow these steps to migrate your project from CRA to Vite while maintaining Jest for testing and Browserslist for browser support:

Step 1: Create a New Vite Project

Use the Vite CLI to create a new Vite project:

npm init @vitejs/app my-vite-app --template react 
cd my-vite-app

This command initializes a new Vite project with React support.

Step 2: Copy Project Files

Copy your project files, including source code and assets, from your CRA project to the new Vite project directory.

Step 3: Install Dependencies

Install the necessary dependencies for testing and browser support:

npm install --save-dev jest @testing-library/react @testing-library/jest-dom 
npm install --save jest-transform-stub

Step 4: Configure Jest

In your Vite project’s package.json, add or modify the jest configuration to include the following:

"jest": { "transform": { "^.+\\.jsx?$": "babel-jest", "^.+\\.svg$": "jest-transform-stub" }, 
"moduleNameMapper": { "\\.(css|less|scss|sass)$": "identity-obj-proxy" } }

This configuration ensures that Jest can handle JSX and SVG files and mocks CSS imports.

Step 5: Update Browserslist

In your Vite project’s package.json, update or add the browserslist configuration to match your desired browser support:

"browserslist": "> 0.25%, not dead"

Adjust the browserslist query as needed for your project’s requirements.

Step 6: Adjust Build Scripts

Modify your Vite project’s package.json to include or update the build scripts as follows:

"scripts": { "start": "vite", "build": "vite build", "test": "jest" }

These scripts allow you to start the development server with npm start, build your project with npm run build, and run tests with npm test.

Step 7: Update Imports

Update any absolute or relative imports in your code to match your new project structure, if necessary.

Step 8: Test Your Project

Run your project’s tests with npm test to ensure that your Jest setup is working correctly in the Vite environment.

Step 9: Run and Build Your Project

Test your project by running npm start and building it with npm run build. Ensure that everything works as expected.


Migrating from Create React App to Vite while maintaining Jest for testing and Browserslist for defining browser support is a significant step toward leveraging modern web development tools. Vite’s speed and developer-friendly features can greatly enhance your React projects while ensuring efficient builds and an optimal development experience.

By following the steps outlined in this guide, you can smoothly transition to Vite and enjoy the benefits of this innovative build tool while preserving your existing testing and browser support configurations. Happy coding!

Leave a Comment

Your email address will not be published. Required fields are marked *