হ্যালো সবাই! 💛
আপনি যদি জাভাস্ক্রিপ্ট বা নোড.জেএস প্রোজেক্ট নিয়ে কাজ করে থাকেন, তাহলে নিশ্চয়ই package.json ফাইলে ডিপেন্ডেন্সি ভার্সনিং এ ^18.2.0 এবং ~18.2.0 এর মতো সংকেত (symbols) দেখে থাকবেন। কিন্তু এই ^ (ক্যারেট) এবং ~ (টিল্ড) চিহ্নগুলোর অর্থ কী? এগুলো আমাদের কী সুবিধা দেয়? 🤔
আসুন, সহজভাবে বুঝে নেই! 👇
✅ ক্যারেট ( ^ ) → মেজর ভার্সনের মধ্যে আপডেট করার অনুমতি দেয়
📌 উদাহরণ: "react": "^18.2.0"
➡️ এর মানে হলো, npm এই প্যাকেজটিকে 18.x.x ভার্সনের মধ্যে যেকোনো আপডেট নিতে দেবে, তবে 19.0.0 বা তার পরবর্তী সংস্করণে আপডেট করবে না।
👉 ধরুন, বর্তমান ভার্সন 18.2.0, তাহলে ^18.2.0 ব্যবহার করলে 18.2.1, 18.3.0, 18.9.5 পর্যন্ত আপডেট হবে, তবে 19.0.0 এ যাবে না।
🔹 এটি মূলত মেজর ভার্সন (প্রথম সংখ্যা) অপরিবর্তিত রেখে, মাইনর (দ্বিতীয় সংখ্যা) ও প্যাচ (তৃতীয় সংখ্যা) আপডেট গ্রহণের অনুমতি দেয়।
✅ টিল্ড ( ~ ) → শুধুমাত্র মাইনর ভার্সনের মধ্যে আপডেট করার অনুমতি দেয়
📌 উদাহরণ: "react-dom": "~18.2.0"
➡️ এর মানে হলো, npm শুধুমাত্র 18.2.x ভার্সনের মধ্যে আপডেট করতে পারবে, তবে 18.3.0 বা তার পরবর্তী ভার্সনে যাবে না।
👉 ধরুন, বর্তমান ভার্সন 18.2.0, তাহলে ~18.2.0 ব্যবহার করলে 18.2.1, 18.2.5, 18.2.9 পর্যন্ত আপডেট হতে পারবে, কিন্তু 18.3.0 বা 19.0.0 তে আপডেট হবে না।
🔹 এটি মূলত মাইনর ভার্সন অপরিবর্তিত রেখে, শুধুমাত্র প্যাচ আপডেট গ্রহণের অনুমতি দেয়।