Error: Cannot find module 'glob' [SOLVED]


NodeJS

The "Cannot find module 'glob'" error is a common error message that occurs in Node.js applications when the Node.js runtime fails to locate the 'glob' module. This error arises when your application tries to require or import the 'glob' module but Node.js cannot find it in the local node_modules directory of your project.

There are several common causes for this error:

  1. The 'glob' module is not installed: If you have not installed the 'glob' module in your project using npm (Node Package Manager) or Yarn, Node.js will not be able to find it. This is the most common cause of the error.
  2. Node.js is looking in the wrong place: Node.js may be looking in the wrong place for the 'glob' module. This can happen if the module was installed globally instead of locally, or if the NODE_PATH environment variable is misconfigured.
  3. The 'glob' module is not listed as a dependency in package.json: If 'glob' is not listed as a dependency in your project's package.json file, it may not be installed when you run npm install or yarn install.

This error typically occurs when you are setting up a new Node.js project or environment, or when you are trying to run a project that was set up by someone else and the 'glob' module is missing from the environment. It can also occur when there are problems with your project's node_modules directory or package.json file.

 

Pre-requisites

This article assumes that your system already has nodejs and npm installed, this can be verified using:

node -v
npm -v

Sample Output:

~]# node -v
v16.18.1
~]# npm -v
8.19.2

 

Scenario-1: The 'glob' module is not installed

If the 'glob' module is not installed, you can install it using npm (Node Package Manager) or Yarn.

If you're using npm, run the following command in your terminal:

npm install glob

If you're using Yarn, use this command instead:

yarn add glob

These commands will install the 'glob' module into your node_modules directory and add it as a dependency in your package.json file.

After running one of these commands, you should be able to import the 'glob' module in your Node.js files without encountering the "Cannot find module 'glob'" error.

 

Scenario-2: Node.js is looking in the wrong place

Problem Statement:

In Node.js, modules can be installed in two different ways: globally and locally.

  • Global Installation: When a module is installed globally (using npm install -g <module_name>), it is installed in a centralized location in the system and made available to all Node.js applications running on that system. This is often used for command line tools or other utilities that need to be accessible across multiple projects.
  • Local Installation: When a module is installed locally (using npm install <module_name>), it is installed in the node_modules directory within the current project directory. This ensures that the specific version of the module is available to that particular project only.

When you try to require or import a module in your Node.js application, Node.js by default first looks in the local node_modules directory of the project. If it doesn't find the module there, it will give the "Cannot find module 'glob'" error, even if the module is installed globally.

The NODE_PATH is an environment variable in Node.js that can be used to specify additional directories to search for modules. If the NODE_PATH variable is misconfigured, it could lead Node.js to look in the wrong place for modules, causing the "Cannot find module 'glob'" error.

 

Solution:

If you suspect that Node.js is looking in the wrong place for the 'glob' module, there are a couple of things you can do:

  1. Install 'glob' Locally: The first and simplest solution is to make sure that the 'glob' module is installed locally in your project. You can do this by running npm install glob in your project's root directory. This will install 'glob' in the local node_modules directory and ensure that Node.js can find it.
  2. Check the NODE_PATH Environment Variable: If you're using the NODE_PATH environment variable, ensure that it's configured correctly. It should include the path to the global node_modules directory if you're using globally installed modules, or it should be set to the local node_modules directory if you're using locally installed modules. However, the use of NODE_PATH is discouraged and it's generally better to install modules locally when they're needed for specific projects.
cd <project_directory>
npm install glob

 

Scenario-3: The 'glob' module is not listed as a dependency in package.json

Problem Statement:

In Node.js, the package.json file is a crucial part of any project. It lists the project's dependencies, that is, the other packages and libraries that the project needs to run properly. When you run npm install or yarn install without any other arguments, Node.js looks at the package.json file and installs the versions of the packages listed there.

If the 'glob' module (or any other module) is used in your project but is not listed in the package.json file, Node.js won't know to install it when you run npm install or yarn install. As a result, when you try to run your project, Node.js won't be able to find the 'glob' module and will throw the "Cannot find module 'glob'" error.

This scenario can often happen when you're setting up an existing project on a new system or environment. If you forget to list 'glob' (or any other module) in the package.json file, anyone who tries to set up the project will encounter the "Cannot find module 'glob'" error when they try to run it, even if they've run npm install or yarn install.

 

Solution:

The solution to this problem is straightforward: make sure that all the modules used in your project are listed as dependencies in your package.json file. If you've installed 'glob' but it's not listed in package.json, you can fix the issue by adding it manually or by reinstalling 'glob' with the --save flag.

To reinstall 'glob' and save it as a dependency, you can use the following command:

npm install --save glob

Or, if you're using Yarn:

yarn add glob

These commands will install 'glob' if it's not already installed, and they will add it to the dependencies list in package.json. This ensures that 'glob' will be installed automatically when you (or anyone else) runs npm install or yarn install in the future. After adding 'glob' to package.json, you should be able to import it in your Node.js files without encountering the "Cannot find module 'glob'" error.

 

Summary

In this comprehensive article, we explored the "Cannot find module 'glob'" error that Node.js developers often encounter. We discussed the reasons behind the error, which mainly include the 'glob' module not being installed, Node.js looking in the wrong place for the module, or the module not being listed as a dependency in the project's package.json file. We further delved into ways to reproduce the error for each scenario and provided step-by-step solutions to rectify it. We hope this guide will serve as a useful resource for developers experiencing this issue and aid them in creating robust and error-free applications.

 

Deepak Prasad

Deepak Prasad

He is the founder of GoLinuxCloud and brings over a decade of expertise in Linux, Python, Go, Laravel, DevOps, Kubernetes, Git, Shell scripting, OpenShift, AWS, Networking, and Security. With extensive experience, he excels in various domains, from development to DevOps, Networking, and Security, ensuring robust and efficient solutions for diverse projects. You can connect with him on his LinkedIn profile.

Can't find what you're searching for? Let us assist you.

Enter your query below, and we'll provide instant results tailored to your needs.

If my articles on GoLinuxCloud has helped you, kindly consider buying me a coffee as a token of appreciation.

Buy GoLinuxCloud a Coffee

For any other feedbacks or questions you can send mail to admin@golinuxcloud.com

Thank You for your support!!

Leave a Comment