错误:找不到模块'npm-registry-client'

mes*_*lds 14 node.js npm

每当我尝试安装npm-registry-client时,我都会收到错误" 错误:无法找到模块'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)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我尝试了每个npm程序的上述内容.它在更新npm后出现

Nav*_*iya 7

它似乎是npm@3.4.1中的一个错误.你应该尝试从npm@3.3.6直接升级到npm @ next,这将绕过npm的错误版本.如果你现在遇到了破坏的npm,你可以通过重新安装Node.js来恢复工作状态.

跳过此问题的最佳方法是使用官方Node安装程序(而不是Homebrew)重新安装Node,并使用打包的npm直接升级到npm @ next.

要重新安装Node.js:

rm -rf /usr/local/lib/node_modules
Run Code Online (Sandbox Code Playgroud)

使用Ubuntu

curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -

sudo apt-get install -y nodejs
Run Code Online (Sandbox Code Playgroud)

以root身份使用Debian

curl -sL https://deb.nodesource.com/setup_5.x | bash -
apt-get install -y nodejs
Run Code Online (Sandbox Code Playgroud)


Dra*_*sil 5

我相信npm-registry-client是一个单独的程序包。

你试过了npm install npm-registry-client --save吗?

https://www.npmjs.com/package/npm-registry-client

编辑:看起来您的npm刚刚坏了。

也许这些步骤会有所帮助:

rm -rf ./node_modules
npm install
Run Code Online (Sandbox Code Playgroud)


mes*_*lds 0

Joyent 官方文档已过时

我们需要放弃这种 TLDR 心态,并在继续之前获取有关 setup_x.x 的最新信息。

通过管道将 curl setup_x.x 传送到 bash 失败

此外,官方 Joyent 文档使用curl并通过管道传输到bash -E,这对我来说失败了。因此我们将使用 wget。

apt-get最新的node包

阅读完上面的段落后,您现在可以按照以下步骤操作:

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)