🌐 Detecting your location…
📢 Advertisement — Configure AdSense in Appearance → Customize → AdSense Settings

কিভাবে npm ERR ঠিক করবেন! ERESOLVE নির্ভরশীলতা ট্রি সমাধান করতে অক্ষম

⏱️2 min read  ·  332 words

npm ERR! নির্ভরতা বৃক্ষ সমাধান করতে অক্ষম ERESOLVE ত্রুটি মানে npm আপনার প্রকল্পে প্যাকেজগুলির মধ্যে বিরোধপূর্ণ সহকর্মী নির্ভরতা প্রয়োজনীয়তা খুঁজে পেয়েছে। npm 7+ পিয়ার ডিপেন্ডেন্সি রেজোলিউশনকে আরও কঠোর করেছে — প্যাকেজগুলি যেগুলি npm 6-এ একে অপরের পাশাপাশি ইনস্টল করা এখন ব্যর্থ। এখানে প্রতিটি ফিক্স ব্যাখ্যা করা হয়েছে.ত্রুটি বোঝা

📋 Table of Contents

  1. এই ত্রুটি পড়া:
  2. এটি npm কে v6 আচরণে ফিরিয়ে আনে — পিয়ার নির্ভরতা দ্বন্দ্ব প্রয়োগ না করে প্যাকেজ ইনস্টল করে। প্যাকেজটি নতুন পিয়ার সংস্করণের সাথে ভাল কাজ করতে পারে যদিও এটি একটি পুরানো পরিসর ঘোষণা করে।
  3. এটা কি করে:
  4. এটি সঠিক সমাধান
  5. ক্ষেত্র npm-কে একটি নেস্টেড নির্ভরতার একটি নির্দিষ্ট সংস্করণ জোর করতে বলে। এটি সবচেয়ে সঠিক সমাধান — আপনি স্পষ্টভাবে বলছেন যে "এই প্যাকেজের জন্যও প্রতিক্রিয়া 18 ব্যবহার করুন" নীরবে বিরোধ উপেক্ষা করার পরিবর্তে।
  6. 2+ বছর আগে প্রকাশিত একটি প্যাকেজ রিঅ্যাক্ট 18 সামঞ্জস্যের বিষয়ে খোলা সমস্যাগুলি সহ সম্ভবত পরিত্যক্ত। সক্রিয় রক্ষণাবেক্ষণ সহ আধুনিক বিকল্পগুলির জন্য npm অনুসন্ধান করুন।
  7. প্রায়শই জিজ্ঞাসিত প্রশ্ন
  8. প্রশ্নঃ –লেগেসি-পিয়ার-ডেপস কি নিরাপদ?
  9. উত্তর: সাধারণত হ্যাঁ, বিশেষ করে যখন দ্বন্দ্ব হয় পিয়ার সংস্করণের রেঞ্জগুলি রক্ষণশীল হওয়া নিয়ে (যেমন, পিয়ার বলে React 16-17 কিন্তু 18 এর সাথে ভাল কাজ করে)। সর্বদা এটি ব্যবহারের পরে পরীক্ষা করুন। ঝুঁকি হল সূক্ষ্ম রানটাইম অসঙ্গতি যা শুধুমাত্র প্রান্তের ক্ষেত্রেই দেখা যায়।
  10. (1) আপনার ফ্রেমওয়ার্ক সংস্করণকে সমর্থন করে এমন একটি সংস্করণে বিরোধপূর্ণ প্যাকেজ আপগ্রেড করা, (2)

এই ত্রুটি পড়া:

npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: my-app@1.0.0
npm ERR! Found: react@18.3.1
npm ERR! node_modules/react
npm ERR! react@"^18.0.0" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^16.8.0 || ^17.0.0" from some-old-package@2.1.0
npm ERR! node_modules/some-old-package

আপনার প্রজেক্ট রিঅ্যাক্ট 18 ব্যবহার করে। একটি পিয়ার নির্ভরতা হিসাবে প্রতিক্রিয়া 16 বা 17 প্রয়োজন। npm ইনস্টল করতে অস্বীকার করে কারণ এটি এটিকে একটি দ্বন্দ্ব হিসাবে দেখে।some-old-packageঠিক 1: –legacy-peer-deps (নিরাপদ দ্রুত সমাধান)

এটি npm কে v6 আচরণে ফিরিয়ে আনে — পিয়ার নির্ভরতা দ্বন্দ্ব প্রয়োগ না করে প্যাকেজ ইনস্টল করে। প্যাকেজটি নতুন পিয়ার সংস্করণের সাথে ভাল কাজ করতে পারে যদিও এটি একটি পুরানো পরিসর ঘোষণা করে।

npm install --legacy-peer-deps

কখন ব্যবহার করবেন:

আপনি যখন সংমিশ্রণের কাজগুলি পরীক্ষা করেছেন, তখন নতুন প্রতিক্রিয়া/ভিউ/কৌণিক পিয়ার সংস্করণ ঘোষণা করার জন্য প্যাকেজটি আপডেট করা হয়নি এবং আপনি বিশ্বাস করেন যে নির্ভরতা আসলে ভেঙে যাবে না।ভবিষ্যতের সমস্ত ইনস্টলেশনের জন্য স্থির থাকুন:

ফিক্স 2: –ফোর্স (শেষ রিসোর্ট)

# .npmrc file (commit this to repo)
legacy-peer-deps=true

এটা কি করে:

npm install --force

বিরোধপূর্ণ সংস্করণের সাথেও ইনস্টলেশন জোর করে, সম্ভাব্য একই প্যাকেজের একাধিক সংস্করণ ইনস্টল করে। এর চেয়ে বেশি আক্রমনাত্মককখন ব্যবহার করবেন:--legacy-peer-deps.

শুধুমাত্র যখন কাজ করে না এবং আপনি যাচাই করেছেন যে সমন্বয় নিরাপদ। --legacy-peer-deps অমিল সংস্করণ থেকে সূক্ষ্ম রানটাইম বাগ তৈরি করতে পারে।--forceফিক্স 3: দ্বন্দ্বপূর্ণ প্যাকেজ আপগ্রেড করুন

এটি সঠিক সমাধান

# Check if a newer version supports your React/Node version
npm info some-old-package peerDependencies

# Try installing a specific version
npm install some-old-package@latest

# Or check if there's an RC/beta with support
npm install some-old-package@next

যখন প্যাকেজ আপডেট করা হয়েছে। Legacy-peer-deps-এ পৌঁছানোর আগে সর্বদা একটি নতুন সংস্করণ পরীক্ষা করুন।ফিক্স 4: ক্ষেত্রকে ওভাররাইড করে (npm 8.3+, সবচেয়ে সঠিক পদ্ধতি)

ক্ষেত্র npm-কে একটি নেস্টেড নির্ভরতার একটি নির্দিষ্ট সংস্করণ জোর করতে বলে। এটি সবচেয়ে সঠিক সমাধান — আপনি স্পষ্টভাবে বলছেন যে “এই প্যাকেজের জন্যও প্রতিক্রিয়া 18 ব্যবহার করুন” নীরবে বিরোধ উপেক্ষা করার পরিবর্তে।

// package.json
{
 "dependencies": {
 "some-old-package": "2.1.0",
 "react": "^18.0.0"
 },
 "overrides": {
 "some-old-package": {
 "react": "^18.0.0"
 }
 }
}

সুতার জন্য (রেজোলিউশন ক্ষেত্র):overridesফিক্স 5: একটি বিকল্প প্যাকেজ খুঁজুন

যদি একটি প্যাকেজ রক্ষণাবেক্ষণ না করা হয় এবং বর্তমান সমকক্ষ সংস্করণগুলিকে সমর্থন না করে, তবে এটি প্রায়শই একটি ভাল রক্ষণাবেক্ষণ করা বিকল্প খুঁজে পাওয়ার লক্ষণ:

// package.json
{
 "resolutions": {
 "some-old-package/react": "^18.0.0"
 }
}

2+ বছর আগে প্রকাশিত একটি প্যাকেজ রিঅ্যাক্ট 18 সামঞ্জস্যের বিষয়ে খোলা সমস্যাগুলি সহ সম্ভবত পরিত্যক্ত। সক্রিয় রক্ষণাবেক্ষণ সহ আধুনিক বিকল্পগুলির জন্য npm অনুসন্ধান করুন।

সিদ্ধান্ত বৃক্ষ

# Check last publish date
npm info some-old-package

# Check GitHub for issues/PRs about the newer React version
# Look for: forks, alternatives, or community maintained versions

সাধারণ পরিস্থিতি এবং সমাধান

প্রায়শই জিজ্ঞাসিত প্রশ্ন

ERESOLVE error
 ↓
Is there a newer version of the conflicting package?
 YES → npm install package@latest
 NO ↓
Does the package actually work with your version (test it)?
 YES → Use --legacy-peer-deps or overrides in package.json
 NO ↓
Is there an actively maintained alternative?
 YES → Switch packages
 NO → Use --legacy-peer-deps and monitor for issues

প্রশ্নঃ –লেগেসি-পিয়ার-ডেপস কি নিরাপদ?

# Scenario: Create React App with React 18
npx create-react-app my-app # old CRA doesn't support React 18
# Fix: Use Vite instead
npm create vite@latest my-app -- --template react-ts

# Scenario: Storybook + React 18
npx sb init # older Storybook versions conflict
# Fix: Use current Storybook
npx storybook@latest init

# Scenario: Old Redux package conflicts
# Fix: upgrade to Redux Toolkit (official recommendation)
npm install @reduxjs/toolkit react-redux

# Scenario: Next.js conflicting peer deps
# Fix: usually just --legacy-peer-deps works; Next.js team is aware

উত্তর: সাধারণত হ্যাঁ, বিশেষ করে যখন দ্বন্দ্ব হয় পিয়ার সংস্করণের রেঞ্জগুলি রক্ষণশীল হওয়া নিয়ে (যেমন, পিয়ার বলে React 16-17 কিন্তু 18 এর সাথে ভাল কাজ করে)। সর্বদা এটি ব্যবহারের পরে পরীক্ষা করুন। ঝুঁকি হল সূক্ষ্ম রানটাইম অসঙ্গতি যা শুধুমাত্র প্রান্তের ক্ষেত্রেই দেখা যায়।

প্রশ্ন: কেন এনপিএম পিয়ার নির্ভরতা আচরণ পরিবর্তন করেছে?
উত্তর: npm 7+ নীরব সংস্করণের দ্বন্দ্ব প্রতিরোধ করার জন্য পিয়ার নির্ভরতা রেজোলিউশনকে কঠোর করেছে যা হার্ড-টু-ডিবাগ রানটাইম ত্রুটির সৃষ্টি করে। এটি আরও সঠিক আচরণ — ট্রেডঅফ আরও স্পষ্ট রেজোলিউশন প্রয়োজন।

প্রশ্ন: আমার কি npm ওভাররাইড বা –legacy-peer-deps ব্যবহার করা উচিত?
package.json-এ আরও স্পষ্ট এবং সিদ্ধান্তটি নথিভুক্ত করে।

দ্রুত কিন্তু অন্তর্নিহিত। উৎপাদন প্রকল্পের জন্য, পছন্দ করুন
A: overrides তাই ওভাররাইড কোড পর্যালোচনায় দৃশ্যমান।--legacy-peer-depsপ্রশ্ন: Node.js আপগ্রেড করার পরে এই ত্রুটিটি দেখা দিয়েছে – এটি কি সম্পর্কিত?overridesউত্তর: Node.js আপগ্রেডগুলি প্রায়ই কঠোর পিয়ার ডিপ রেজোলিউশন সহ নতুন npm সংস্করণ নিয়ে আসে। নোড ডাউনগ্রেড করা সমাধান নয় – ব্যবহার করুন

এবং নতুন নোড/এনপিএম-এর সাথে সামঞ্জস্যপূর্ণ সংস্করণগুলিতে আপনার নির্ভরতা আপডেট করুন।
প্রশ্ন: নতুন প্রকল্পে আমি কীভাবে এটি প্রতিরোধ করব?overrides or --legacy-peer-depsউত্তর: আধুনিক টুলিং দিয়ে শুরু করুন (Vite, Next.js 14+, সর্বশেষ CRA বিকল্প) যার আপ-টু-ডেট পিয়ার ঘোষণা রয়েছে। দুর্বল রক্ষণাবেক্ষণের ইতিহাস সহ প্যাকেজগুলি এড়িয়ে চলুন। ব্যবহার করুন

বর্তমান থাকার জন্য ত্রৈমাসিক।
উপসংহারnpm outdatednpm ERESOLVE ত্রুটিগুলি সাধারণত এর দ্বারা সমাধান করা হয়:

(1) আপনার ফ্রেমওয়ার্ক সংস্করণকে সমর্থন করে এমন একটি সংস্করণে বিরোধপূর্ণ প্যাকেজ আপগ্রেড করা, (2)

ব্যবহার করে৷ একটি নথিভুক্ত সংশোধনের জন্য package.json-এ বা (3) দ্রুত অস্থায়ী সমাধান হিসাবেoverrides. এড়িয়ে চলুন--legacy-peer-deps অন্য কিছু কাজ না করলে – এটি রানটাইম সংস্করণ দ্বন্দ্ব তৈরি করতে পারে। সর্বোত্তম দীর্ঘমেয়াদী সমাধান হল নির্ভরতা আপডেট করা যাতে সংস্করণের দ্বন্দ্ব জমে না। অন্য কিছু কাজ না করলে – এটি রানটাইম সংস্করণ দ্বন্দ্ব তৈরি করতে পারে। সর্বোত্তম দীর্ঘমেয়াদী সমাধান হল নির্ভরতা আপডেট করা যাতে সংস্করণের দ্বন্দ্ব জমে না।--force অন্য কিছু কাজ না করলে – এটি রানটাইম সংস্করণ দ্বন্দ্ব তৈরি করতে পারে। সর্বোত্তম দীর্ঘমেয়াদী সমাধান হল নির্ভরতা আপডেট করা যাতে সংস্করণের দ্বন্দ্ব জমে না।

✍️ Leave a Comment

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

🌐 Read in:🇩🇪 Deutsch🇧🇷 Português🇸🇦 العربية🇮🇳 हिन्दी🇧🇩 বাংলা