错误: 无法找到模块’. ./lib/cli’

我对 javascript 开发完全是新手,当我在主干 _ 蓝图手册中工作时,我遇到了以下错误。我得到的错误是:

> 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

下面是调试日志:

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 ]

还有这个:

☹ ~/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

我认为这可能是一个路径问题,所以我将 export NODE_PATH=/opt/lib/node_modules添加到我的。然后找到了它的源代码,这似乎没有任何影响。

有什么想法,无论如何,我可以故障排除这个或试图更好地理解实际发生了什么?

81727 次浏览

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

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

Had the same problem.

I use protractor --elementExplorer and it works for me

You can try doing the following

npm uninstall nodemon
npm install nodemon

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

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

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

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.

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

Worked for me.

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.

brew link --overwrite node

Is all that is needed. No need to uninstall.

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

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.