DEV Community

Mehedi Hasan
Mehedi Hasan

Posted on

Optimizing React Apps for Production with Vite

React অ্যাপ্লিকেশন ডেভেলপমেন্টের সময় Vite চমৎকার পারফরম্যান্স দেয়, তবে প্রোডাকশনে একটি অ্যাপ অপ্টিমাইজ করা আরও গুরুত্বপূর্ণ। Vite-এর প্রোডাকশন বিল্ড প্রসেস এবং বিভিন্ন অপ্টিমাইজেশন টেকনিক ব্যবহার করে আমরা আমাদের React অ্যাপকে দ্রুততর ও কার্যকর করতে পারি। এই আর্টিকেলে আমরা আলোচনা করব কিভাবে Vite-এর প্রোডাকশন বিল্ড প্রসেস কাজ করে এবং কীভাবে React অ্যাপের জন্য অপ্টিমাইজ করা যায়।

Vite-এর প্রোডাকশন বিল্ড প্রসেস

Vite উন্নত প্রযুক্তি ব্যবহার করে দ্রুত প্রোডাকশন বিল্ড তৈরি করে। এটি ESBuild এবং Rollup-এর শক্তিশালী ফিচারগুলো ব্যবহার করে কোড মিনিফিকেশন, ট্রি শেকিং এবং কোড স্প্লিটিং করে।

প্রোডাকশন বিল্ড চালানোর কমান্ড

Vite ব্যবহার করে প্রোডাকশন বিল্ড তৈরি করতে নিম্নলিখিত কমান্ড চালাতে হবে:

npm run build
Enter fullscreen mode Exit fullscreen mode

অথবা,

yarn build
Enter fullscreen mode Exit fullscreen mode

এই কমান্ড চালানোর পর dist/ ডিরেক্টরির মধ্যে অপ্টিমাইজড ফাইল তৈরি হবে, যা সরাসরি সার্ভারে ডিপ্লয় করা যায়।

React অ্যাপের জন্য বিল্ড অপ্টিমাইজেশন

Vite স্বয়ংক্রিয়ভাবে বেশ কিছু অপ্টিমাইজেশন করে, তবে অতিরিক্ত কিছু কনফিগারেশন ব্যবহার করে আমরা আরও ভালো পারফরম্যান্স পেতে পারি।

১. মিনিফিকেশন সক্ষম করা

Vite স্বয়ংক্রিয়ভাবে Terser ব্যবহার করে কোড মিনিফাই করে, যা ফাইলের সাইজ কমিয়ে লোড টাইম কমায়।

export default defineConfig({
  build: {
    minify: 'terser',
  }
});
Enter fullscreen mode Exit fullscreen mode

২. কোড স্প্লিটিং

Vite স্বয়ংক্রিয়ভাবে ডায়নামিক ইমপোর্ট এবং কোড স্প্লিটিং করে, যা অ্যাপের লোড টাইম দ্রুত করে।

build: {
  rollupOptions: {
    output: {
      manualChunks(id) {
        if (id.includes('node_modules')) {
          return 'vendor';
        }
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

৩. Brotli এবং Gzip কমপ্রেশন ব্যবহার করা

Brotli এবং Gzip কমপ্রেশন ব্যবহার করে আমরা স্ট্যাটিক ফাইলের সাইজ আরও কমাতে পারি। এটি করতে vite-plugin-compression ব্যবহার করা যেতে পারে।

npm install vite-plugin-compression
Enter fullscreen mode Exit fullscreen mode

এরপর vite.config.js ফাইলে এটি কনফিগার করুন:

import compression from 'vite-plugin-compression';

export default defineConfig({
  plugins: [compression()],
});
Enter fullscreen mode Exit fullscreen mode

৪. ইমেজ এবং অ্যাসেট অপ্টিমাইজেশন

Vite অটোমেটিক্যালি অ্যাসেট হ্যান্ডলিং করে, তবে আমরা আরও উন্নত অপ্টিমাইজেশনের জন্য vite-imagemin প্লাগইন ব্যবহার করতে পারি।

npm install vite-plugin-imagemin
Enter fullscreen mode Exit fullscreen mode
import viteImagemin from 'vite-plugin-imagemin';

export default defineConfig({
  plugins: [
    viteImagemin({
      optipng: { optimizationLevel: 7 },
      mozjpeg: { quality: 75 },
    })
  ]
});
Enter fullscreen mode Exit fullscreen mode

৫. পরিবেশ পরিবর্তনশীল (Environment Variables) কনফিগার করা

Vite mode ব্যবহার করে পরিবেশ পরিবর্তনশীল কনফিগার করতে দেয়। .env ফাইলে আমরা API URL সেট করতে পারি:

VITE_API_URL=https://api.example.com
Enter fullscreen mode Exit fullscreen mode

main.jsx ফাইলে এটি ব্যবহার করা যেতে পারে:

const apiUrl = import.meta.env.VITE_API_URL;
Enter fullscreen mode Exit fullscreen mode

উপসংহার

Vite React অ্যাপগুলোর জন্য দ্রুত ও কার্যকর প্রোডাকশন বিল্ড সরবরাহ করে। উপরের অপ্টিমাইজেশন টেকনিকগুলো অনুসরণ করলে আমরা আরও উন্নত পারফরম্যান্স পেতে পারি। উন্নত স্পিড, ছোট ফাইল সাইজ এবং ভালো ইউজার এক্সপেরিয়েন্সের জন্য Vite-এর অপ্টিমাইজেশন টুলগুলো ব্যবহার করা অবশ্যই গুরুত্বপূর্ণ।

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

nextjs tutorial video

Youtube Tutorial Series 📺

So you built a Next.js app, but you need a clear view of the entire operation flow to be able to identify performance bottlenecks before you launch. But how do you get started? Get the essentials on tracing for Next.js from @nikolovlazar in this video series 👀

Watch the Youtube series

👋 Kindness is contagious

Explore a trove of insights in this engaging article, celebrated within our welcoming DEV Community. Developers from every background are invited to join and enhance our shared wisdom.

A genuine "thank you" can truly uplift someone’s day. Feel free to express your gratitude in the comments below!

On DEV, our collective exchange of knowledge lightens the road ahead and strengthens our community bonds. Found something valuable here? A small thank you to the author can make a big difference.

Okay