Cannot find module 'commander' error in Node.js

avatar

Borislav Hadzhiev

Last updated: Mar 28, 2022

banner

Photo from Unsplash

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:

shell
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.

shell
# 👇️ 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 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.

shell
# ✅ 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.
shell
# 👇️ 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:

shell
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.

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

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

shell
npm install

Or install the latest version of the package:

shell
npm install commander@latest

Conclusion #

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.

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.