今天是我第一份工作的第一天,在通过更新我的Mac(OSX)上的节点和npm设置我的开发环境后,我似乎已经破坏了一些东西。每次我尝试在命令行中使用npm(npm init,npm install等)时都会收到以下错误消息:
module.js:339
扔错了;
错误:找不到模块'npmlog'
在Function.Module._resolveFilename(module.js:337:15)
在Function.Module._load(module.js:287:25)
在Module.require(module.js:366:17)
at require(module.js:385:17)
at /usr/local/lib/node_modules/npm/bin/npm-cli.js:20:13
at Object。 (/usr/local/lib/node_modules/npm/bin/npm->cli.js:76:3)
在Module._compile(module.js:425:26)
at Object.Module._extensions..js(module.js:432:10)
在Module.load(module.js:356:32)
在Function.Module._load(module.js:311:12)
没有太多错误信息可以关闭,堆栈跟踪也没有帮助我这么多。这是我尝试过的:
npm <something>
来解决他们的问题,这是我无法做到的。sudo npm uninstall npm -g
之类的内容无效。npmlog
目录中删除.npm
目录,然后再将github repo直接克隆到该目录。希望你们中的一个人之前遇到过这个问题,或者想知道如何处理它。任何帮助表示赞赏。
答案 0 :(得分:17)
这是一个很好的链接Fixing npm On Mac OS X for Homebrew Users
。
node.js
时,使用以下命令
rm -rf /usr/local/lib/node_modules brew uninstall node brew install node --without-npm echo prefix=~/.npm-packages >> ~/.npmrc curl -L https://www.npmjs.com/install.sh | sudo sh
答案 1 :(得分:17)
以下是对我有用的步骤:
$ sudo rm -rf /usr/local/bin/npm
$ sudo rm -rf /usr/local/lib/node_modules/npm
$ brew uninstall node
$ brew install node
答案 2 :(得分:9)
尝试curl -0 -L http://npmjs.org/install.sh | sudo sh
关注重定向。另请注意,我在sudo sh命令之前添加了sudo,具体取决于您的用户权限。
答案 3 :(得分:5)
我刚刚在Mac上遇到过这个问题,经过仔细检查,我觉得问题是在某些情况下,在Node应用程序目录中node/bin
目录中的链接到{{ npm
中的1}}被文件本身替换,这就是它失败的原因(以及为什么所有各种脚本方法都修复它,因为它们正确地保留了文件链接)。
如果我使用lib/node_modules/npm/bin
复制node-v6.9.4-darwin-x64
中的内容,那么我就会遇到此问题,但如果我使用Finder复制文件,那么我就不会这样做。因此,如果您不想使用Finder,则可以通过手动重新创建cp
链接来修复此问题(或者,ln
或mv
也可以使用;我没有&# 39; t测试他们)。
希望这有助于有人来这里解决这个问题。
编辑:我在Mac上偶然发现了问题的原因(无论如何,我的特定情况):我总是使用rsync -a
来复制目录。这是因为我老了,不再学习新事物了。正确的方法是cp -r
,它可以正确地复制所有内容。
答案 4 :(得分:3)
我没有必要像刚刚重新开始那样“修复”这个问题。我使用这篇文章来做到这一点:How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)
如果有其他人知道如何解决问题或知道我做了什么导致它,我仍然会非常感兴趣。
答案 5 :(得分:3)
brew uninstall node
并从官方网站下载并为我工作
答案 6 :(得分:3)
我在运行sudo npm install npm -g
之后在Fedora 27上点击了这个。
问题是我最初通过sudo dnf install nodejs
安装了Node.js,它将npm安装到/usr/local/bin
和/usr/local/lib
。但是,正在运行sudo npm install
会在/usr/bin/
运行which npm
显示已安装额外的npm。然后以下为我清理了一切:
$ sudo rm /usr/bin/npm
$ sudo rm -rf /usr/lib/node_modules/npm
$ dnf remove -y nodejs
$ dnf install -y nodejs
答案 7 :(得分:0)
我遇到了同样的错误。这是在未连接到互联网的服务器上。我在Github上看过一个线程,提到有时在执行复制或其他文件操作时可以删除符号链接。所以我做了一个&#34;发现&#34;在有问题的服务器的符号链接的节点目录上,找不到。在工作服务器上执行相同操作时发现了符号链接文件。
我去了 NODE_HOME / bin 并做了 ls -l </ strong>
果然我有一个npm文件。在工作服务器上执行相同的步骤,npm文件是符号链接。为了修复有问题的服务器,我执行了以下操作:
rm npm
ln -s ../lib/node_modules/npm/bin/npm-cli.js npm
答案 8 :(得分:0)
在REDHAT linux中安装量角器时出现了同样的错误
NPM
文件
/node-v6.10.2-linux-x64/bin/npm
表示模块路径如下:
之前的代码
var log = require('npmlog')
后的代码
var log = require('/node-v6.10.2-linux-x64/lib/node_modules/npm/node_modules/npmlog')
答案 9 :(得分:0)
对我来说,我运行了brew uninstall node
,然后从nodejs.org下载了最新版本并且运行良好。