今天是我第一份工作的第一天,通过在我的Mac(OSX)上更新节点和npm来设置我的开发环境后,我似乎已经破坏了一些东西 . 每次我尝试在命令行中使用npm(npm init,npm install等)时都会收到以下错误消息:
module.js:339 throw err;错误:无法在Module.require的Function.Module._load(module.js:287:25)的Function.Module._resolveFilename(module.js:337:15)中找到模块'npmlog'(module.js:366:17) )在object的/usr/local/lib/node_modules/npm/bin/npm-cli.js:20:13的require(module.js:385:17) . (/usr/local/lib/node_modules/npm/bin/npm->cli.js:76:3)在Module._compile(module.js:425:26)的Object.Module._extensions..js(模块 . js:432:10)在Function.Module._load的Module.load(module.js:356:32)(module.js:311:12)
没有太多的错误消息要发布,堆栈跟踪也没有帮助我 . 这是我尝试过的:
-
搜索了Stackoverflow,虽然有类似的问题,人们已经能够使用
npm <something>
来解决他们的问题,这是我无法做到的 . -
卸载并重新安装npm - Didn 't work because I can' t完全使用npm命令,所以像
sudo npm uninstall npm -g
这样的东西不起作用 . -
从
.npm
目录中删除了npmlog
目录,然后再次将github repo直接克隆到该目录 .
希望你们中的一个人之前遇到过这个问题,或者想知道如何处理它 . 任何帮助表示赞赏 .
10 回答
这是一个很好的链接Fixing npm On Mac OS X for Homebrew Users .
尝试在mac下升级
node.js
时使用以下命令以下是适合我的步骤:
尝试使用
curl -0 -L http://npmjs.org/install.sh | sudo sh
来关注重定向 . 另请注意,我在sudo sh命令之前添加了sudo,具体取决于您的用户权限 .我刚刚在Mac上遇到过这个问题,经过仔细检查,在我看来问题是在Node应用程序目录中的某些情况下
node/bin
目录中npm
中的npm
中的链接被文件本身替换了是它失败的原因(以及为什么所有各种脚本方法都修复它,因为它们正确地保留了文件链接) .如果我使用
cp
从node-v6.9.4-darwin-x64
复制内容然后我遇到了这个问题,但是如果我使用Finder复制文件,那么我没有 . 因此,您可以通过手动重新创建ln
链接来修复它,如果您不想使用Finder(或者,mv
或rsync -a
也可以工作;我还没有测试过它们) .希望这有助于有人来这里解决这个问题 .
编辑:我've just accidentally found the reason for the problem on Macs (for my particular scenario, at any rate): I'总是使用
cp -r
来复制目录 . 这是因为我老了,不再学习新东西了 . 正确的方法是cp -R
,它可以正确复制所有内容 .我不一定只是重新开始问题.860511_问题 . 我用这篇文章这样做:How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)
如果其他人知道如何实际解决问题或知道我做了什么导致它,我仍然会非常感兴趣 .
在我的情况下,我只是
brew uninstall node
并从官方网站下载并为我工作我在运行
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 . 然后以下为我清理了一切:我遇到了同样的错误 . 这是在未连接到互联网的服务器上 . 我在Github上看过一个线程,提到有时在执行复制或其他文件操作时可以删除符号链接 . 所以我在节点目录上对有问题的服务器的符号链接进行了“查找”,找不到任何符号链接 . 在工作服务器上执行相同操作时发现了符号链接文件 .
我去了 NODE_HOME/bin 做了 ls -l
果然我有一个npm文件 . 在工作服务器上执行相同的步骤,npm文件是一个符号链接 . 为了修复有问题的服务器,我执行了以下操作:
rm npm
ln -s ../lib/node_modules/npm/bin/npm-cli.js npm
在REDHAT linux中安装量角器时出现了同样的错误
归档于
对于模块路径如下:
代码之前
代码之后
对我来说,我运行了
brew uninstall node
然后从nodejs.org下载了最新版本并且它运行了 .