每当我尝试安装npm注册表客户端时,我都会收到错误"错误:找不到模块'npm-registry-client'"。
我试图用以下命令解决这个问题,但没有成功:
npm uninstall
npm install -g npm@latest
完整输出为:
user@pc ~/devel> npm install npm-registry-client --save
module.js:340
throw err;
^
Error: Cannot find module 'npm-registry-client'
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> (/usr/local/lib/node_modules/npm/lib/cache/caching-client.js:9:22)
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 Module.require (module.js:364:17)
到目前为止,我尝试过的每一个npm程序都有上述内容。它出现在更新npm
它似乎是npm@3.4.1.您应该尝试从升级npm@3.3.6直接到npm@next,这将绕过有缺陷的npm版本。如果你目前被一个坏掉的npm卡住了,你可以通过重新安装Node.js.回到一个正常工作的npm
跳过这个问题的最好方法是使用官方的Node安装程序(而不是Homebrew)重新安装Node,并使用打包的npm直接升级到npm@next.
要重新安装Node.js:
rm -rf /usr/local/lib/node_modules
使用Ubuntu
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install -y nodejs
使用Debian作为root用户
curl -sL https://deb.nodesource.com/setup_5.x | bash -
apt-get install -y nodejs
我认为npm注册表客户端是一个单独的包。
你试过npm install npm-registry-client --save
吗?
https://www.npmjs.com/package/npm-registry-client
编辑:看起来你的npm完全破产了。
也许这些步骤会有所帮助:
rm -rf ./node_modules
npm install
也有同样的问题。我在用Ubuntu。我所做的步骤:
- 已删除文件夹
/usr/lib/node_modules
- 使用此帮助重新安装nodejs nodejs
- 使用
sudo npm update -g npm
将npm更新为最新稳定
基本上,你必须重新安装nodejs:(没有其他帮助。P.S.以防万一:将需要的包列表保存在某个地方,只列出node_modules文件夹(ls -l /usr/lib/node_modules
)并保存输出。因此,您可以稍后重新安装它们。
我在Windows上遇到了同样的问题,发现节点卸载程序将缓存留在了AppData/Roaming中。
这对我有效:
- 卸载节点
- 手动删除npm和缓存
- 从Nodejs官方网站上的msi重新安装
我只使用npm 3.5.0 就解决了这个问题
sudo npm install -g npm@3.5.0
当我试图用npm 3.4.1在archlinux上安装原子编辑器时,我遇到了这个问题
我在使用Protractor工具时也遇到了同样的问题。我所做的是,我试图将npm 3.4.1
更新到最新版本(这是最新版本),并用下面的命令做了两次:
npm install -g npm
因此,npm 3.4.1
出现了问题,上述错误不断出现。
github上添加了一些问题:https://github.com/npm/npm/issues/10492,https://github.com/npm/npm/issues/10394和https://github.com/npm/npm/issues/2528.
解决方案是通过删除与Nodejs相关的所有文件来重新安装Nodejs。
确保你:
- 卸载nodejs后重新启动机器
删除以下文件(如果尚未完成):
C:Program Files (x86)Nodejs C:Program FilesNodejs C:Users{User}AppDataRoamingnpm (or %appdata%npm) C:Users{User}AppDataRoamingnpm-cache (or %appdata%npm-cache)
使用节点安装程序进行安装。
参考:https://stackoverflow.com/a/20711410/3619412
我在mac上遇到了同样的问题,我的解决方案是按照以下链接中的步骤卸载我的node.js和npm模块:
- 转到/usr/local/lib并删除任何节点和node_modules
- 转到/usr/local/include并删除任何节点和node_modules目录
- 如果使用brew安装节点安装,则运行brew卸载节点
- 检查Home目录中的任何本地或lib或include文件夹,并从中删除任何一个或多个node_modules
- 转到/usr/local/bin并删除任何节点可执行文件
我也这样做了:
- sudo rm/usr/local/bin/npm
- sudo rm/usr/local/share/man/man1/node*
- sudo rm/usr/local/lib/dtrace/node.d
- sudo rm-rf~/.npm
- sudo rm-rf~/.node gyp
- sudo rm/opt/local/bin/node
- sudo rm/opt/local/include/node
- sudo rm-rf/opt/local/lib/node_modules
然后我重新安装了node.js的干净版本
Joyent官方文档已过时
我们需要抛弃tldr的心态,在继续之前获得关于setup_x.x的最新信息。
管道卷曲setup_x.x到bash失败
此外,Joyent官方文档使用curl
并管道到bash -E
,这对我来说是失败的。因此,我们将使用wget。
Apt获取最新的节点包
在阅读了上面的段落之后,您现在可以遵循以下内容:
sudo apt-get remove node npm nodejs -y
sudo rm -rf /usr/local/lib/node_modules
sudo wget https://deb.nodesource.com/setup_0.12
sudo -E bash ./setup_0.12
sudo apt-get install nodejs -y
sudo npm -g install npm@latest
nodejs --version
现在应该打印最新的,例如
v0.12.9
从源代码编译
如果没有什么帮助,比如在我的情况下,你想回到老学校,从源代码编译
sudo apt-get remove node npm nodejs -y
sudo rm -rf /usr/local/lib/node_modules
mkdir ~/node && cd ~/node
wget http://nodejs.org/dist/v0.12.9/node-v0.12.9.tar.gz
tar -xzvf node-v0.12.9.tar.gz
./configure && make
sudo make install
我也遇到过类似的问题。删除整个node_modules
文件夹并重新安装对我来说很有效。希望它能对你有所帮助。
rm -rf node_modules
npm install
这就是我所做的和的工作
npm cache clean --force
npm -g install npm
npm -g install npm-registry-client