npm不起作用,总是得到这个错误 - >错误:找不到模块'我们还在那里'

Gre*_*nov 55 macos installation node.js npm

我试图用Yosemite在Mac上安装grunt.节点已安装在最新版本中.如果我在终端输入"node -v",我会得到第v0.12.5行.非常好.但是当我想用npm安装东西时,我只得到一个错误......

我试过"sudo npm install -g grunt-cli","sudo npm install npm -g"以及"npm -v"我总是得到这个错误......

Error: Cannot find module 'are-we-there-yet'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/usr/local/Cellar/node/0.10.22/lib/node_modules/npm/node_modules/npmlog/log.js:2:16)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
Run Code Online (Sandbox Code Playgroud)

有人知道问题是什么或更好的解决方案?

eus*_*h77 90

你已经打破npm了删除它的一些依赖关系.

are-we-there-yet是一个依赖自己npmlog的依赖npm,你以某种方式删除它.对于此类情况,通常的简单解决方案是重新安装软件包,但如果npm无法运行则无效.幸运的是,npmtarball预先绑定了依赖项,因此从头开始安装npm就像解压缩tarball一样简单.

1)转到全局node_modules目录(npm root -g如果可以运行它将打印什么):

$ cd /usr/local/lib/node_modules
Run Code Online (Sandbox Code Playgroud)

2)删除损坏的npm目录或将其移动到其他位置(请注意,您可能需要提升此权限以及以下步骤):

$ mv npm /tmp
Run Code Online (Sandbox Code Playgroud)

3)npm从注册表中下载并解压缩(例如,您要安装的替代版本3.10.8):

$ curl -L registry.npmjs.com/npm/-/npm-{VERSION}.tgz | tar xz --transform="s:^package:npm:"
Run Code Online (Sandbox Code Playgroud)

您可以使用此安装脚本自动执行其中一些操作:

$ curl -L https://www.npmjs.com/install.sh | sh
Run Code Online (Sandbox Code Playgroud)

此时npm应该再次工作.

  • ...但是`/ usr/local/lib/node_modules`似乎可以解决问题 (3认同)
  • 在 ubuntu 14.04 上进行全新安装时遇到了这个问题,这为我解决了这个问题。(调整版本#) (2认同)
  • 用户打破他们自己的系统不一定是真的.我遇到了同样的问题,提出了一个新的Vagrant VM.请参阅https://github.com/npm/npm/issues/9668 (2认同)

Sam*_*yle 11

转到全局node_modules目录(npm root -g,如果您不知道)

$ cd /usr/local/lib/node_modules

curl -L https://www.npmjs.com/install.sh | sh
Run Code Online (Sandbox Code Playgroud)


小智 9

即使我有同样的问题,解决以下步骤的最简单方法对我有用。

  1. 卸载 Node.js。

  2. C:/Users/<user_name>/AppData/Roaming.

  3. 删除npm目录。

  4. 重新安装Nodejs(最新版v6.11.3,包括npm 3.10.10)。

  5. 完成 现在尝试检查 ( npm -v) 是否会正常工作。


The*_*der 7

我一直在疯狂地尝试在我的centos 7机器上使用最新版本的节点和npm.

不幸的是,我已经被这个错误困扰了近一个星期了.我终于找到了一个有效的解决方案.

如果您的npm目前已损坏,最简单的方法是再次安装工作版本.

我从代码安装.假设安装了git,以下命令将实现该目标

cd ~
git clone https://github.com/nodejs/node.git nodejs_code
cd nodejs_code
./configure
make
make install
Run Code Online (Sandbox Code Playgroud)

在您安装了npm和node的新副本之后,顺便说一句,这不是稳定版本(而是从源头开始,它的前沿).

编写本节点时安装的节点版本为5.0.0-pre,这对我来说太新了,而npm是版本2.14.4,这对我来说太旧了.

要在节点上获得最新版本,我将使用npm安装'n'包.使用n,我将安装最新版本的节点.

npm install -g n
n stable
Run Code Online (Sandbox Code Playgroud)

对于root用户(我用来安装全局包),我需要在我的~/.bashrc文件中添加以下行,这将允许root用户访问/ usr/local/bin命令中的命令.(您可能不需要此步骤)

export PATH=/usr/local/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

此时我的节点版本是4.0.0,这是节点的最新稳定版本.

现在更新npm,这是有史以来最烦人的事情.

直接更新到最新版本总是导致"我们还在那里",我只能推测为"不,并且退出询问或我将绕这个节点"

相反,我发现首先通过3.3.3版安装可以解决这个问题.

npm install -g npm@3.3.3
Run Code Online (Sandbox Code Playgroud)

现在版本3.3.3安装并且没有"我们还没有"错误.

谢天谢地.保持你的手臂内侧和你的安全带紧固的孩子,因为我们几乎在那里.....

npm install -g npm
Run Code Online (Sandbox Code Playgroud)

使用最后一个命令,我能够使用最新版本的npm,以及最新的稳定版节点.在撰写本文时,这是3.3.5

从现在开始,我的命令如下.

n stable
npm install -g npm
Run Code Online (Sandbox Code Playgroud)

每次我从这里开始运行这些,我都会获得不受干扰的npm旅行,而不会让孩子们在后面抱怨.

注意

由于我正在审核一些服务器,默认情况下没有一个服务器,我发现自己不得不一遍又一遍地执行这项任务.

因此,我自己将这些指令变成了一个脚本.

请享用:

importnode.sh

#!/bin/bash

cd ~
git clone https://github.com/nodejs/node.git nodejs_code
cd nodejs_code
git reset --hard
git pull origin master
./configure
make
make install

if [[ `cat ~/.bashrc |grep -E "PATH.*/usr/local/bin:.*"` ]];
then
    echo "Already Done";
else
    echo "export PATH=/usr/local/bin:\$PATH" >> ~/.bashrc;
    export PATH=/usr/local/bin:$PATH;
fi;

npm install -g n
n stable

npm install -g npm@3.3.3

npm install -g npm
Run Code Online (Sandbox Code Playgroud)

将此文件放入nodeimport.sh后,唯一要做的就是使其可执行并执行它.

$ chmod +x importnode.sh
$ ./importnode.sh
Run Code Online (Sandbox Code Playgroud)

等一会儿,一切都安装好了.


小智 5

eush77说的是什么,但如果你在Windows上:

https://nodejs.org/download/release/npm/下载最新的软件包

解压缩,并替换nodejs node-modules目录中的"npm"目录(默认情况下为C:\ Program Files \nodejs \node_modules)