Solve - Cannot find module 'commander' error in Node.js


Borislav Hadzhiev

Mon Mar 28 20222 min read


Photo by Alex Blăjan

Solve - Cannot find module 'commander' error in Node.js #

To solve the error "Cannot find module 'commander'", make sure to install the commander package by opening your terminal in your project's root directory and running the following command: npm install commander and restart your IDE and development server.

cannot find module commander

Open your terminal in your project's root directory (where your package.json file is located) and run the following command:

npm install commander
This will add the commander package to the dependencies of your project.

If the error is not resolved, try restarting your IDE and your development server.

If you still get the error, try to delete your node_modules and package-lock.json (not package.json) files, re-run npm install and restart your IDE.

# 👇️ delete node_modules and package-lock.json rm -rf node_modules rm -f package-lock.json # 👇️ clean npm cache npm cache clean --force npm install npm install commander@latest
Make sure to restart your IDE and dev server if the error still persists. VSCode often glitches and a reboot solves things sometimes.

If you need to be able to run commander from every directory on your machine, you have to install the module globally.

# ✅ Install commander globally npm install -g commander # ✅ Create a symbolic link from the global package # to node_modules/ of current folder npm link commander

The npm link command creates a symbolic link from the globally installed package to the node_modules/ directory of the current folder.

If the global installation of commander fails, you might have to run the command prefixed with sudo.
# 👇️ If you got permissions error, run with sudo sudo npm install -g commander npm link commander

If you use ts-node and write stand-alone executable subcommands in TypeScript files, you need to call your program through node to get the subcommands called correctly:

node -r ts-node/register pm.ts

If you're still getting the "Cannot find module 'commander'" error, open your package.json file and make sure it contains the commander package in the dependencies object.

{ // ... rest "dependencies": { "commander": "^9.1.0", } }

You can try to manually add the line and re-run npm install.

npm install

Or install the latest version of the package:

npm install commander@latest
Use the search field on my Home Page to filter through my more than 1,000 articles.