Setting Up a Vite Project
1. Start a project with Vite
To start a project with Vite, you can either create a basic project or directly specify a template
1.1. Option 1. Install Vite
npm create vite@latest my-vite-app
Replace
my-vite-app
with your project name.
1.2 Option 2. Choose a Template
Vite supports vanilla JavaScript, React, Vue, Svelte, and more. For example, to create a React app, you can specify it directly:
npm create vite@latest my-react-app -- --template react
2. Install Dependencies After creating the project, navigate into the directory and install the dependencies:
cd my-vite-app
npm install
3. Run the Development Server Start the development server with:
npm run dev
Vite's blazing-fast Hot Module Replacement (HMR) ensures near-instantaneous updates as you code.
Key Configuration Options
Configuring your vite.config.js
is crucial for improving the development experience.
1. Alias Imports
Simplify your imports by defining aliases:
import { defineConfig } from 'vite';
import path from 'path';
export default defineConfig({
resolve: {
alias: {
'@': path.resolve(__dirname, './src')
}
}
});
2. Environment Variables
Vite supports .env
files for managing configurations. Create a .env
file and define variables:
VITE_API_URL=https://api.example.com
Access these variables in your app with import.meta.env
:
console.log(import.meta.env.VITE_API_URL);
3. Plugins
Extend Vite's functionality using plugins, such as @vitejs/plugin-react
for React projects. Install it and add it to your configuration:
npm install @vitejs/plugin-react
import react from '@vitejs/plugin-react';
export default defineConfig({
plugins: [react()]
});
Challenges and Considerations
While Vite offers a powerful development experience, there are some challenges to keep in mind:
-
Hot Module Replacement (HMR) Vite's HMR is fast, but integrating it with certain frameworks or configurations (like Module Federation) may require additional effort.
-
Build Performance Vite leverages Rollup for production builds, which may require fine-tuning for large applications.
-
Cross-Browser Compatibility Ensure your app is transpiled for older browsers using the
@vitejs/plugin-legacy
plugin.
npm install @vitejs/plugin-legacy
import legacy from '@vitejs/plugin-legacy';
export default defineConfig({
plugins: [legacy()]
});
Resources
- VITE DOC
- Learn VITE + Module Federation with this video tutorial by Jack Herrington. Watch it here.