Error: Cannot find module '../lib/cli'

JavascriptNpm

Javascript Problem Overview


I'm completely new to javascript development and I'm getting the following error as I work my way through the backbone_blueprints book. Here is the error I get:

> simple-blog@0.1.0 start /Users/noahc/Projects/backbone_blueprints/blog
> nodemon server.js


module.js:340
    throw err;
          ^
Error: Cannot find module '../lib/cli'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/noahc/Projects/backbone_blueprints/blog/node_modules/.bin/nodemon:3:11)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)

npm ERR! Darwin 14.1.0
npm ERR! argv "node" "/usr/local/bin/npm" "start"
npm ERR! node v0.10.33
npm ERR! npm  v2.1.11
npm ERR! code ELIFECYCLE
npm ERR! simple-blog@0.1.0 start: `nodemon server.js`
npm ERR! Exit status 8
npm ERR! 
npm ERR! Failed at the simple-blog@0.1.0 start script 'nodemon server.js'.
npm ERR! This is most likely a problem with the simple-blog package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     nodemon server.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls simple-blog
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/noahc/Projects/backbone_blueprints/blog/npm-debug.log
☹ ~/Projects/backbone_blueprints/blog npm install                                                                   ruby-2.1.3
npm WARN package.json simple-blog@0.1.0 No repository field.
npm WARN package.json simple-blog@0.1.0 No README data

Here is the debug log:

0 info it worked if it ends with ok 
1 verbose cli [ 'node', '/usr/local/bin/npm', 'install' ]
2 info using npm@2.1.11
3 info using node@v0.10.33
4 verbose node symlink /usr/local/bin/node
5 error install Couldn't read dependencies
6 verbose stack Error: ENOENT, open '/Users/noahc/Projects/backbone_blueprints/package.json'
7 verbose cwd /Users/noahc/Projects/backbone_blueprints
8 error Darwin 14.1.0
9 error argv "node" "/usr/local/bin/npm" "install"
10 error node v0.10.33
11 error npm  v2.1.11
12 error path /Users/noahc/Projects/backbone_blueprints/package.json
13 error code ENOPACKAGEJSON
14 error errno 34 
15 error package.json ENOENT, open '/Users/noahc/Projects/backbone_blueprints/package.json'
15 error package.json This is most likely not a problem with npm itself.
15 error package.json npm can't find a package.json file in your current directory.
16 verbose exit [ 34, true ]

And this:

☹ ~/Projects/backbone_blueprints/blog which node                                                                    ruby-2.1.3
/usr/local/bin/node
☺ ~/Projects/backbone_blueprints/blog which npm                                                                     ruby-2.1.3
/usr/local/bin/npm

I thought it might be a path issue and so I added export NODE_PATH=/opt/lib/node_modules to my .zshrc file and sourced it and that seemed to have no impact.

Any thoughts on anyway I can troubleshoot this or try to better understand what is actually happening?

Javascript Solutions


Solution 1 - Javascript

My solution was to just delete the directory /node_modules/ and to make a fresh install afterwards with npm install.

Solution 2 - Javascript

Nodedemon is looking for its ../lib/cli folder in its own directory and not finding it. You probably have a messed up install. This can happen sometimes when you use finder to copy a project from one folder to another.

If you blow away your node_modules directory and reinstall from scratch, you should restore the folder.

cd your_project_folder
rm -rf node_modules
npm install

Edit:

You might also use yarn.

cd your_project_folder
rm -rf node_modules
yarn

Solution 3 - Javascript

For me npm was broken, probably because I ran it with sudo at some point.

I needed to fix brew, upgrade/update

brew uninstall node
sudo chown -R $(whoami) /usr/local/*
brew cleanup
brew install node

Solution 4 - Javascript

I found the fix. I had to install nodemon globally doing this: npm install nodemon -g

Solution 5 - Javascript

I had this error, leaving this here in case it helps anyone.

I installed yarn and apparently messed up my node install, tried to fix it by uninstalling stuff, made a total mess. Brew wouldn't install node successfully (old OS maybe out of LTS, installing from source code wouldn't make npm work).

Even

npm -v

would give the error (so nothing to do with node_modules). Finally fixed it by installing node using a package manager from here.

Solution 6 - Javascript

You can try doing the following

npm uninstall nodemon
npm install nodemon

Solution 7 - Javascript

In macOS BigSur i had to clean up the node modules folder first:

sudo rm -rf /usr/local/lib/node_modules

Note: Reason i needed sudo is some of the folders need special permission to remove them.

After removing node_modules I had reinstalled npm package by:

brew postinstall node

Finally i was able to see npm back into my mac:

npm -v
7.21.1

Solution 8 - Javascript

So npm creates a symbolic link between modules that have an executable declared in the package.json file and the node_modules/.bin directory.

Read from npm to understand.

Dr. Axel Rauschmayer explains more here.

When ever a project directory and its node_modules folder is copied using macos finder, windows file explorer or command line, this symlink is destroyed. Thus calls to the symbolically linked file on the node_modules/.bin directory cannot hit the supposed package.

In your case it was nodemon . To manually fixed this run

ln -s ./node_modules/nodemon/bin/nodemon.js ./node_modules/.bin/nodemon

for any other package, check the "bin": { } key in it's package.json and see the the symlinked executable, then modify the link command above and run according.

Solution 9 - Javascript

brew uninstall node
brew upgrade 
brew install node
brew link --overwrite node 
npm -v

Worked for me.

Solution 10 - Javascript

Had the same problem.

I use protractor --elementExplorer and it works for me

Solution 11 - Javascript

Protractor have changed the location.The lib/built protractor files now reside in the built directory of the package. You should just be able to direct your IDE to built/cli.js This worked for me.

Check their Github Issue link :

https://github.com/angular/protractor/issues/3089

Solution 12 - Javascript

brew link --overwrite node

Is all that is needed. No need to uninstall.

Solution 13 - Javascript

I was getting same error after installing nodejs using homebrew to fix it I have downloaded and installed nodejs from it's official website. It's working fine now.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionNoah ClarkView Question on Stackoverflow
Solution 1 - JavascriptGoogolView Answer on Stackoverflow
Solution 2 - JavascriptsuperluminaryView Answer on Stackoverflow
Solution 3 - JavascriptLamellamaView Answer on Stackoverflow
Solution 4 - JavascriptNoah ClarkView Answer on Stackoverflow
Solution 5 - JavascriptPamView Answer on Stackoverflow
Solution 6 - JavascriptChad SciraView Answer on Stackoverflow
Solution 7 - JavascriptArunSelvam P MView Answer on Stackoverflow
Solution 8 - JavascriptMiracoolView Answer on Stackoverflow
Solution 9 - Javascriptshirish kumarView Answer on Stackoverflow
Solution 10 - Javascriptguy mograbiView Answer on Stackoverflow
Solution 11 - Javascriptuser3444999View Answer on Stackoverflow
Solution 12 - JavascriptjolandView Answer on Stackoverflow
Solution 13 - JavascriptUddesh JainView Answer on Stackoverflow