npm 不起作用,总是出现这个错误 -> 错误:找不到模块'are-we-there-yet'
Posted
技术标签:
【中文标题】npm 不起作用,总是出现这个错误 -> 错误:找不到模块\'are-we-there-yet\'【英文标题】:npm doesn't work, get always this error -> Error: Cannot find module 'are-we-there-yet'npm 不起作用,总是出现这个错误 -> 错误:找不到模块'are-we-there-yet' 【发布时间】:2015-09-10 13:35:53 【问题描述】:我尝试使用 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)
有人知道问题所在或更好的解决方案吗?
【问题讨论】:
它说它找不到模块'are-we-there-yet'。这是什么? 我不知道。我没有安装任何新东西或任何东西,只是更新了节点sudo npm cache clean -f sudo npm install -g n sudo n stable
,然后我尝试安装 grunt
它表示您正在尝试安装一个名为“are-we-there-yet”的模块。你有没有碰巧npm install are-we-there-yet
?
不,我不会尝试安装名为“are-we-there-yet”的模块。如果我尝试安装 grunt 或使用 sudo npm install -g grunt-cli
或 npm -v
获取 npm 版本,我会收到此错误
【参考方案1】:
您通过删除一些依赖项破坏了npm
。
are-we-there-yet
是 npmlog
的依赖项,它是 npm
本身的依赖项,您以某种方式删除了它。对于这种情况,通常的简单解决方案是重新安装一个包,但如果npm
无法运行,这将不起作用。幸运的是,npm
tarball 预先捆绑了依赖项,因此 installing npm
from scratch 就像解压缩 tarball 一样简单。
1) 转到全局node_modules
目录(如果可以运行npm root -g
会打印什么):
$ cd /usr/local/lib/node_modules
2) 删除损坏的npm
目录或将其移至其他位置(请注意,您可能需要为此和以下步骤提升权限):
$ mv npm /tmp
3) 从注册表中下载并解压缩新的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
此时npm
应该又可以工作了。
【讨论】:
谢谢你的回答,我晚上试试;) 在 ubuntu 14.04 上进行全新安装时遇到了这个问题,这为我解决了这个问题。 (调整版本#) ...不过/usr/local/lib/node_modules
似乎成功了
用户破坏了自己的系统并不一定是真的。我遇到了同样的问题,提出了一个新的 Vagrant VM。见github.com/npm/npm/issues/9668
@Muzietto 更新了帖子中的npm
版本。谢谢!【参考方案2】:
转到全局 node_modules 目录(如果你不知道,npm root -g)
$ cd /usr/local/lib/node_modules
curl -L https://www.npmjs.com/install.sh | sh
【讨论】:
【参考方案3】:即使我有同样的问题,解决以下步骤的最简单方法对我有用。
卸载 Nodejs。
转到C:/Users/<user_name>/AppData/Roaming.
删除npm
目录。
重新安装Nodejs
(最新v6.11.3,包括npm 3.10.10)。
完成现在尝试检查 (npm -v
) 是否可以正常工作。
【讨论】:
【参考方案4】:eush77 所说的,但如果你在 Windows 上:
从 https://nodejs.org/download/release/npm/
解压,替换nodejs node-modules目录下的“npm”目录 (默认为 C:\Program Files\nodejs\node_modules)
【讨论】:
【参考方案5】:我一直在***地尝试在我的 centos 7 机器上获取最新版本的 node 和 npm。
不幸的是,我已经被这个错误困扰了将近一个星期。我终于找到了一个可行的解决方案。
如果您的 npm 当前已损坏,最简单的方法是再次安装工作版本。
我从代码安装。假设安装了 git,以下命令将实现该目标
cd ~
git clone https://github.com/nodejs/node.git nodejs_code
cd nodejs_code
./configure
make
make install
在您安装了 npm 和 node 的新副本之后,顺便说一下,这不是稳定版本(而是它的最前沿的源代码)。
在撰写本文时安装的 node 版本是 5.0.0-pre,这对我来说太新了,而 npm 是 2.14.4 版本,对我来说太旧了。
为了在 node 上获取最新版本,我将使用 npm 安装“n”包。使用 n,我将安装最新版本的节点。
npm install -g n
n stable
对于 root 用户(我用来安装全局包)我需要将以下行添加到我的 ~/.bashrc
文件中,这将允许 root 用户访问 /usr/local/ 中的命令斌命令。 (你可能不需要这一步)
export PATH=/usr/local/bin:$PATH
此时我的 node 版本是 4.0.0,这是 node 的最新稳定版本。
现在要更新 npm,这是有史以来最烦人的事情。
直接更新到最新版本总是会导致“我们还在那里”,我只能推测为“不,退出询问,否则我会转过这个节点”
相反,我发现先安装到 3.3.3 版可以解决这个问题。
npm install -g npm@3.3.3
现在 3.3.3 版已安装并且可以正常工作,而不会出现“are-we-there-yet”错误。
谢天谢地。把你的手臂放在里面,系好安全带的孩子,因为我们快到了.....
npm install -g npm
通过最后的命令,我能够使用最新版本的 npm 和最新的稳定版本的 node.js。在撰写本文时是 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
稍等片刻,全部安装完毕。
【讨论】:
请帮助我。以上解决方案对我不起作用。 您在开始这些指导时是否安装了新的 nodejs/npm 副本? 这个答案太棒了!完美的指南。整晚都在寻找这个问题的答案!来自我的大 +1! 是的,我已经尝试过 apt-get remove nodejs 和 apt-get remove node 和 apt-get remove npm。然后我开始了这些方向。 告诉你什么。在 ***.com 上提出您的问题,输入您所做的尝试以及这些尝试的输出。然后在这里放一个链接,我去看看。很难通过猜想来解决问题。【参考方案6】:我按照上面的说明(eush77 所说的)删除了 node_modules 文件夹中的 npm 文件夹。但是仍然存在导致此错误消息的断开链接。
/usr/local/bin/npm: 没有这样的文件或目录
所以删除断开的链接:
rm /usr/local/bin/npm
然后让它指向正确的位置,如下所示:
sudo ln -s /usr/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
【讨论】:
【参考方案7】:你也可以从https://nodejs.org/en/download/current/
重新安装node
【讨论】:
【参考方案8】:对我来说,这与安装损坏有关,也许 ubuntu 存储库不兼容或最新。以下结果导致 npm/node 安装正常工作:
sudo curl -sL https://deb.nodesource.com/setup_4.x |须藤 -E bash - sudo apt-get install -y nodejs
https://github.com/nodesource/distributions
【讨论】:
【参考方案9】:我使用找到的官方安装包重置它:https://nodejs.org/en/
玩弄 n 和 nvm 最终通过提供与当前 Node 版本不兼容的包为我损坏了 node_modules 包。
我怀疑它适用于其他环境,因为它结合了 Node 和 npm install。
【讨论】:
【参考方案10】:对我来说,我必须删除我项目的 node_modules
文件夹。然后我清理了缓存以防万一,并做了一个新的npm i
,它能够在安装后执行node-sass,并且在are-we-there-yet
丢失时不会出错。
如果移动全局 node_modules
对您不起作用,请尝试上述解决方案:
-
删除项目的本地
node_modules
在项目的根目录中:rm -rf node_moduldes
npm cache clean -f
npm i
【讨论】:
【参考方案11】:当我调用yarn dev
命令时,我在本地服务器上部署项目时遇到了同样的问题。
在浏览了所有博客、文章和资料后,我只需通过简单的这 2 个命令就可以使用它。
npm list
检查它现在指向的版本。对我来说,当我收到这个错误时。它指向系统。
我刚刚使用了nvm use vVERSION
,例如nvm use v10.5.0
(对我来说)它开始工作了。所有错误都消失了,项目在调用yarn dev
时成功部署。在做任何其他事情之前先试试这个。我强烈推荐。
【讨论】:
以上是关于npm 不起作用,总是出现这个错误 -> 错误:找不到模块'are-we-there-yet'的主要内容,如果未能解决你的问题,请参考以下文章
npm install 不起作用,因为某些包不包含 package.json 文件
尝试使用“npm start”运行此应用程序,但它不起作用。我如何使这个应用程序工作?
NextJS 自定义服务器在使用“npm run build”构建后出现 CORS 错误