我试图用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)
有人知道问题是什么或更好解决方案吗?
答案 0 :(得分:89)
您已通过删除某些依赖项来破解but this one is also not.
。
npm
是are-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
答案 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
进行全局迁移,请尝试:
node_modules
rm -rf node_moduldes
npm cache clean -f
npm i
答案 10 :(得分:0)
当我调用yarn dev
命令时,在本地服务器上部署项目时遇到了同样的问题。
浏览了所有博客,文章和内容之后,我仅通过这两个命令就可以使它工作。
npm list
检查当前指向的版本。对我来说,当我遇到此错误时。它指向系统。
我刚刚使用了nvm use v{VERSION}
,例如nvm use v10.5.0
(对我来说),它开始起作用。调用yarn dev
时,所有错误消失了,并且项目已成功部署。在执行其他操作之前,请先尝试此操作。我强烈推荐。