🌐 Detecting your location…

ওয়েবপ্যাকের ত্রুটির সমাধান করা যায় না পাওয়া মডিউলটি কীভাবে ঠিক করবেন

⏱️3 min read  ·  448 words

ত্রুটিমডিউল পাওয়া যায়নি: ত্রুটি: ‘./something’ সমাধান করা যাচ্ছে না Webpack-এ মানে বান্ডলার আপনার আমদানি করা একটি মডিউল খুঁজে পায়নি। এর বিভিন্ন কারণ রয়েছে — অনুপস্থিত প্যাকেজ, ভুল পাথ, কেস সংবেদনশীলতা বা কনফিগার সমস্যা। এখানে প্রতিটি ঠিক কিভাবে.

এই ত্রুটির মানে কি

ওয়েবপ্যাক আপনার আমদানি অনুসরণ করে একটি নির্ভরতা গ্রাফ তৈরি করে। “সমাধান করা যায় না” এর অর্থ এটি একটি আমদানি অনুসরণ করেছে কিন্তু লক্ষ্য ফাইল বা প্যাকেজ খুঁজে পায়নি। ত্রুটিটি সাধারণত মডিউলটির নাম দেয় যা এটি খুঁজে পায়নি এবং যে ফাইলটি এটি আমদানি করেছে — সেখানে শুরু করুন।

কারণ 1: প্যাকেজ ইনস্টল করা হয়নি

# Error: Can't resolve 'lodash'
# The package isn't installed

# ✅ Install it
npm install lodash

# Verify it's in package.json and node_modules
npm list lodash

# If node_modules is corrupted, reinstall
rm -rf node_modules package-lock.json
npm install

কারণ 2: ভুল আপেক্ষিক পথ

// 🐛 Wrong path - file is somewhere else
import { helper } from './utils/helper';   // but it's at ./lib/helper

// ✅ Fix the path
import { helper } from './lib/helper';

// Common mistakes:
// - Missing ./ for local files (Webpack looks in node_modules without it)
import x from 'components/Button';    // ❌ looks in node_modules
import x from './components/Button';  // ✅ relative to current file

// - Wrong number of ../ for parent directories
import x from '../../utils/x';        // count directories carefully

কারণ 3: কেস সংবেদনশীলতা

// 🐛 Works on Mac/Windows (case-insensitive) but fails on Linux/CI
import Button from './components/button';   // file is Button.jsx

// ✅ Match the exact case of the filename
import Button from './components/Button';   // Button.jsx

// Case mismatches are the #1 cause of "works locally, fails in CI"
// because Linux file systems are case-sensitive

কারণ 4: কনফিগারে ফাইল এক্সটেনশন অনুপস্থিত

// 🐛 Importing without extension, but Webpack doesn't know to try .tsx
import App from './App';   // App.tsx exists but Webpack can't resolve

// ✅ Add extensions to Webpack resolve config
// webpack.config.js
module.exports = {
  resolve: {
    extensions: ['.js', '.jsx', '.ts', '.tsx', '.json'],
    // Now Webpack tries these extensions when none is specified
  },
};

কারণ 5: পথ উপনাম কনফিগার করা হয়নি

// 🐛 Using @ alias but Webpack doesn't know it
import Button from '@/components/Button';   // Can't resolve '@'

// ✅ Configure the alias in webpack.config.js
const path = require('path');

module.exports = {
  resolve: {
    alias: {
      '@': path.resolve(__dirname, 'src'),
    },
  },
};

// If using TypeScript, also add to tsconfig.json:
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": { "@/*": ["src/*"] }
  }
}
// Both must agree - Webpack for bundling, tsconfig for type checking

কারণ 6: সূচক ফাইল ছাড়াই একটি ডিরেক্টরি আমদানি করা

// 🐛 Importing a folder that has no index file
import { utils } from './helpers';   // ./helpers is a folder

// ✅ Ensure the folder has an index.js/ts, or import the specific file
// ./helpers/index.js exports the utils, OR:
import { utils } from './helpers/utils';   // specific file

কারণ 7: ব্রাউজার বান্ডেলে Node.js কোর মডিউল

// 🐛 Can't resolve 'fs' or 'path' - Node modules don't exist in browsers
// A package tried to use Node.js core modules in browser code

// ✅ In Webpack 5, configure fallbacks or exclude them
module.exports = {
  resolve: {
    fallback: {
      "fs": false,       // not available in browser
      "path": require.resolve("path-browserify"),
      "crypto": require.resolve("crypto-browserify"),
    },
  },
};
// Or find a browser-compatible alternative to the package

ডিবাগিং ধাপ

  1. সম্পূর্ণ ত্রুটি পড়ুন — এটি মডিউল এবং আমদানি করা ফাইলের নাম দেয়
  2. প্যাকেজ ইনস্টল করা আছে কিনা দেখুনnpm list <module>
  3. পথ এবং কেস যাচাই করুন — সঠিক বানান এবং ক্যাপিটালাইজেশন
  4. সমাধান. এক্সটেনশন পরীক্ষা করুন — ফাইলের এক্সটেনশন কনফিগার করা আছে?
  5. উপনাম চেক করুন — Webpack এবং tsconfig উভয় ক্ষেত্রেই @ বা অন্য উপনামগুলি কনফিগার করা আছে?
  6. ডেভ সার্ভার রিস্টার্ট করুন — কনফিগার পরিবর্তনের জন্য পুনরায় চালু করা প্রয়োজন

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

প্রশ্নঃ কেন এটি স্থানীয়ভাবে কাজ করে কিন্তু CI/উৎপাদনে ব্যর্থ হয়?
উত্তর: প্রায় সবসময় কেস সংবেদনশীলতা — macOS/Windows কেস-সংবেদনশীল, Linux (CI/উৎপাদন) কেস-সংবেদনশীল। ./components/button স্থানীয়ভাবে কাজ করে কিন্তু লিনাক্সে ব্যর্থ হলে ফাইলটিButton.jsx. সর্বদা সঠিক ফাইলের নাম কেসের সাথে মেলে।

প্রশ্ন: আমি প্যাকেজ ইনস্টল করেছি কিন্তু এখনও “সমাধান করতে পারছি না”। কেন?
উত্তর: ডেভ সার্ভার পুনরায় চালু করুন (ওয়েবপ্যাক ক্যাশে)। যাচাই করুন প্যাকেজটি আসলে node_modules এবং package.json এ আছে। এটি একটি স্থানীয় আমদানি হলে, পাথ এবং কেস পরীক্ষা করুন। নোড_মডিউল মুছুন এবং মডিউল তালিকাটি ভুল হলে পুনরায় ইনস্টল করুন।

প্রশ্ন: ফাইল এক্সটেনশন উল্লেখ না করে কিভাবে আমি আমদানি করব?
উত্তর: এক্সটেনশন যোগ করুনresolve.extensions webpack.config.js-এ (যেমন, )। তারপর যখন আপনি একটি ছাড়াই আমদানি করেন তখন Webpack প্রতিটি এক্সটেনশন চেষ্টা করে। কনফিগারেশন পরিবর্তন করার পরে ডেভ সার্ভারটি পুনরায় চালু করুন।['.js', '.jsx', '.ts', '.tsx']প্রশ্ন: আমি কিভাবে @ পাথ উপনাম সেট আপ করব?

A: কনফিগার করুন
webpack.config.js-এ (@ আপনার src ডিরেক্টরিতে ম্যাপিং) এবংresolve.alias TypeScript ব্যবহার করলে tsconfig.json-এ। উভয়কেই সম্মত হতে হবে — বান্ডলিংয়ের জন্য ওয়েবপ্যাক, টাইপ চেকিংয়ের জন্য টাইপস্ক্রিপ্ট। পরিবর্তন করার পরে পুনরায় চালু করুন।pathsপ্রশ্ন: কেন ওয়েবপ্যাক ‘fs’ বা ‘পাথ’ সমাধান করতে পারে না?

উত্তর: এগুলি হল Node.js কোর মডিউল যা ব্রাউজারে নেই৷ একটি প্যাকেজ ব্রাউজার কোডে তাদের ব্যবহার করার চেষ্টা করছে৷ কনফিগার করুন
ওয়েবপ্যাক 5-এ ব্রাউজার বিকল্প প্রদান করতে (বা বাদ দেওয়ার জন্য মিথ্যা), অথবা একটি ব্রাউজার-সামঞ্জস্যপূর্ণ প্যাকেজ খুঁজুন।resolve.fallbackউপসংহার

ওয়েবপ্যাকে “মডিউল পাওয়া যায়নি: সমাধান করা যাচ্ছে না” মানে বান্ডলারটি একটি আমদানি করা মডিউল খুঁজে পায়নি। কারণগুলির মধ্য দিয়ে কাজ করুন:

প্যাকেজ ইনস্টল করা হয়েছে তা নিশ্চিত করুন, পাথ এবং কেস যাচাই করুন (কেস সংবেদনশীলতা বেশিরভাগ CI ব্যর্থতার কারণ হয়), এক্সটেনশনহীন আমদানির জন্য সমাধান. এক্সটেনশন কনফিগার করুন, ওয়েবপ্যাক এবং tsconfig উভয় ক্ষেত্রেই পাথ অ্যালিয়াস সেট আপ করুন এবং ব্রাউজার বান্ডেলের জন্য ফলব্যাক সহ নোড কোর মডিউল পরিচালনা করুন. সম্পূর্ণ ত্রুটি পড়ুন — এটি অনুপস্থিত মডিউল এবং আমদানি করা ফাইলের নাম দেয়, আপনাকে উৎসের দিকে নির্দেশ করে। কনফিগার পরিবর্তনের পরে ডেভ সার্ভার পুনরায় চালু করুন। বেশিরভাগ ক্ষেত্রেই আমদানির পথ ঠিক করে (কেসটি দেখুন!) বা অনুপস্থিত প্যাকেজ ইনস্টল করে সমাধান করা হয়। একবার Webpack একটি বাস্তব ফাইলে আমদানি অনুসরণ করতে পারলে, ত্রুটিটি পরিষ্কার হয়ে যায়।. সম্পূর্ণ ত্রুটি পড়ুন — এটি অনুপস্থিত মডিউল এবং আমদানি করা ফাইলের নাম দেয়, আপনাকে উৎসের দিকে নির্দেশ করে। কনফিগার পরিবর্তনের পরে ডেভ সার্ভার পুনরায় চালু করুন। বেশিরভাগ ক্ষেত্রেই আমদানির পথ ঠিক করে (কেসটি দেখুন!) বা অনুপস্থিত প্যাকেজ ইনস্টল করে সমাধান করা হয়। একবার Webpack একটি বাস্তব ফাইলে আমদানি অনুসরণ করতে পারলে, ত্রুটিটি পরিষ্কার হয়ে যায়।

MD Rafikul Islam

Written by

MD Rafikul Islam is a software developer and the editor of TechPulse. He writes about developer tooling, hardware, and the practical decisions that come up in day-to-day engineering work — which laptop to buy, which framework to commit to, why a build broke at 2am. He tests the tools he writes about and says plainly when something is not worth the money. Corrections and corrections requests are welcome at rony.yf25@gmail.com.

✍️ Leave a Comment

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

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