Tutorials Logic, IN info@tutorialslogic.com

Module not found in React Fix Import Errors: Causes, Fixes, Examples & Interview Tips

What is This Error?

The "Module not found" error occurs when React's build tool (Webpack/Vite) cannot locate a file or package you're trying to import. This is a compile-time error that prevents your app from building.

Common Causes

  • Wrong file path in import statement
  • Package not installed (missing from node_modules)
  • Typo in package name or file name
  • Case sensitivity mismatch (Button.jsx vs button.jsx)
  • File was deleted or renamed but import wasn't updated

Quick Fix (TL;DR)

Quick Solution

Quick Solution
# For missing packages
npm install package-name

# For path issues "” check the exact path
ls src/components/  # Verify file exists and check exact name

# Clean install if node_modules is corrupted
rm -rf node_modules package-lock.json
npm install

Common Scenarios & Solutions

Problem

Problem
import axios from 'axios';  // Module not found: Can't resolve 'axios'
import { motion } from 'framer-motion';  // Not installed!

Solution

Solution
# Install the missing package
npm install axios
npm install framer-motion

# Or install multiple at once
npm install axios framer-motion react-router-dom

# Verify it's in package.json after installing
cat package.json | grep axios

Problem

Problem
// File is at: src/components/Button/Button.jsx
import Button from './Button';           // ❌ Wrong path
import Button from '../components/btn';  // ❌ Wrong name
import Button from './components/Button' // ❌ Missing leading ./

Solution

Solution
// ✅ Correct relative path from current file
import Button from '../components/Button/Button';

// ✅ Or if there's an index.js in the folder
import Button from '../components/Button'; // Resolves to index.js

// ✅ Use path aliases (configure in vite.config.js or jsconfig.json)
import Button from '@/components/Button';

Problem

Problem
// File on disk: UserProfile.jsx
import UserProfile from './userprofile';  // ❌ Works on Windows, fails on Linux/Mac!
import UserProfile from './Userprofile';  // ❌ Wrong case

Solution

Solution
// ✅ Match exact case of filename
import UserProfile from './UserProfile';  // Exact match

// Best practice: Use PascalCase for component files
// UserProfile.jsx, Button.jsx, NavBar.jsx

Problem

Problem
git clone https://github.com/user/project
cd project
npm start  # Module not found errors everywhere!

Solution

Solution
git clone https://github.com/user/project
cd project
npm install  # ✅ Install all dependencies first!
npm start

Best Practices to Avoid This Error

  • Use IDE autocomplete for imports - VS Code suggests correct paths automatically
  • Always run npm install after cloning - node_modules is in .gitignore
  • Use consistent naming conventions - PascalCase for components, camelCase for utilities
  • Set up path aliases - Use @/components instead of ../../components
  • Keep package.json updated - Run npm install after pulling changes
  • Use index.js barrel files - Simplify imports from component folders
  • Check .gitignore - Ensure node_modules is ignored but package.json is committed

Related Errors

Frequently Asked Questions

Either the package isn't installed (run npm install), the file path is wrong, there's a case sensitivity mismatch, or the file was deleted/renamed without updating the import.

Windows file system is case-insensitive, so Button.jsx and button.jsx are the same. Linux is case-sensitive, so they're different files. Always match the exact case of your filenames.

In Vite, add resolve.alias in vite.config.js. In CRA, use craco or react-app-rewired. In jsconfig.json, add paths configuration. This lets you use @/components instead of ../../components.

The node_modules folder is in .gitignore and not committed to git. After cloning, you must run npm install to download all dependencies listed in package.json.

Delete node_modules and package-lock.json, then run npm install. This gives you a fresh install. On Windows: rmdir /s /q node_modules. On Mac/Linux: rm -rf node_modules.

Ready to Level Up Your Skills?

Explore 500+ free tutorials across 20+ languages and frameworks.