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

时间:2015-06-24 11:14:51

标签: node.js macos installation 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)

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

11 个答案:

答案 0 :(得分:89)

您已通过删除某些依赖项来破解but this one is also not.

npmare-we-there-yet的依赖项,它是npmlog本身的依赖项,并且您以某种方式删除了它。对于此类情况,通常的简单解决方案是重新安装软件包,但如果npm无法运行,则无效。幸运的是,npm tarball预先绑定了依赖项,因此installing npm from scratch就像解压缩tar包一样简单。

1)转到全局npm目录(如果可以运行,node_modules会打印什么):

npm root -g

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

npm

3)从注册表中下载并解压缩新的$ mv npm /tmp (您要安装的替换版本,例如npm):

3.10.8

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

$ curl -L registry.npmjs.com/npm/-/npm-{VERSION}.tgz | tar xz --transform="s:^package:npm:"

此时$ curl -L https://www.npmjs.com/install.sh | sh 应该再次运作。

答案 1 :(得分:11)

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

$ cd /usr/local/lib/node_modules

curl -L https://www.npmjs.com/install.sh | sh

答案 2 :(得分:7)

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

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

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

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

cd ~
git clone https://github.com/nodejs/node.git nodejs_code
cd nodejs_code
./configure
make
make install

安装了npm和node的新副本之后,顺便说一句,这不是稳定版本(而是从源头开始直接出现)。

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

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

npm install -g n
n stable

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

export PATH=/usr/local/bin:$PATH

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

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

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

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

npm install -g npm@3.3.3

现在安装版本3.3.3并且没有“我们还没有”错误。

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

npm install -g npm

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

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

n stable
npm install -g npm

每次我从这里开始运行时,我都会获得不受干扰的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

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

$ chmod +x importnode.sh
$ ./importnode.sh

等一会儿,一切都已安装。

答案 3 :(得分:5)

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

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

打开包装,并更换&#34; npm&#34; nodejs node-modules目录中的目录 (默认为C:\ Program Files \ nodejs \ node_modules)

答案 4 :(得分:4)

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

1)卸载Nodejs。

2)转到C:/User/AppData/Roaming.

3)删除npm目录。

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

5)完成现在尝试检查(npm -v)将正常工作。

答案 5 :(得分:1)

我按照上面的说明(eush77说的)删除了node_modules文件夹中的npm文件夹。但仍然存在导致此错误消息的断开链接。

/ usr / local / bin / npm:没有这样的文件或目录

所以删除断开的链接:

{{1}}

然后让它指向正确的地方:

{{1}}

答案 6 :(得分:1)

您还可以从node

重新安装https://nodejs.org/en/download/current/

答案 7 :(得分:0)

对我而言,这与安装被破坏以及ubuntu存储库不兼容或最新版本有关。以下结果导致了一个有效的npm / node安装:

sudo curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - sudo apt-get install -y nodejs

https://github.com/nodesource/distributions

答案 8 :(得分:0)

我使用找到的官方安装程序包重置了它:https://nodejs.org/en/

使用n和nvm最终通过提供与当前Node版本不兼容的软件包来破坏node_modules软件包。

我怀疑它适用于其他环境,因为它将Node和npm安装相结合。

答案 9 :(得分:0)

对我来说,我必须删除项目的node_modules文件夹。然后,我清理了缓存以防万一,并做了一个全新的npm i,它能够执行节点安装后的安装,并且不会丢失are-we-there-yet时出错。

如果像上面的解决方案那样,无法node_modules进行全局迁移,请尝试:

  1. 删除项目的本地node_modules
    • 在项目的根目录:rm -rf node_moduldes
  2. npm cache clean -f
  3. npm i

答案 10 :(得分:0)

当我调用yarn dev命令时,在本地服务器上部署项目时遇到了同样的问题。

浏览了所有博客,文章和内容之后,我仅通过这两个命令就可以使它工作。

  1. npm list检查当前指向的版本。对我来说,当我遇到此错误时。它指向系统。

  2. 我刚刚使用了nvm use v{VERSION},例如nvm use v10.5.0(对我来说),它开始起作用。调用yarn dev时,所有错误消失了,并且项目已成功部署。在执行其他操作之前,请先尝试此操作。我强烈推荐。