npm doesn't work, get always this error -> Error: Cannot find module 'are-we-there-yet'
npm doesn't work, get always this error -> Error: Cannot find module 'are-we-there-yet'
我尝试在 mac 和 Yosemite 上安装 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)
有人知道问题是什么或更好的解决方案吗?
您删除了它的某些依赖项,从而破坏了 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
应该又可以工作了。
eush77 说了什么,但如果你在 Windows:
从下载最新的包
https://nodejs.org/download/release/npm/
解压,替换nodejs node-modules目录下的"npm"目录
(默认 C:\Program Files\nodejs\node_modules)
我一直在狂热地尝试在我的 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 版本,这对我来说太旧了。
为了在节点上获得最新版本,我将使用 npm 安装 'n' 包。使用 n,我将安装最新版本的节点。
npm install -g n
n stable
对于 root 用户(我用来安装全局包),我需要将以下行添加到我的 ~/.bashrc
文件中,这将允许 root 用户访问 /usr/local/bin 命令。 (您可能不需要这一步)
export PATH=/usr/local/bin:$PATH
此时我的node版本是4.0.0,是node最新的稳定版本。
现在更新 npm,这是有史以来最烦人的事情。
直接更新到最新版本总是会导致 "are-we-there-yet",我只能推测为 "NO, and Quit Asking or I will turn this node around"
相反,我发现首先通过版本 3.3.3 安装可以解决此问题。
npm install -g npm@3.3.3
现在版本 3.3.3 已安装并且可以正常工作,不会出现 "are-we-there-yet" 错误。
谢天谢地。把你的手臂放在里面,你系好安全带孩子们,因为我们快到了......
npm install -g npm
通过最后一条命令,我能够使用最新版本的 npm 和最新稳定版本的 node。在撰写本文时是 3.3.5
从现在开始,我的命令如下。
n stable
npm install -g npm
从现在开始,每次我 运行 这些时,我都会获得不受干扰的 npm 旅行,而孩子们不会在后面抱怨。
备注
由于我正在管理许多服务器,其中 none 默认带有节点,我发现自己不得不一遍又一遍地执行此任务..
因此我决定将这些说明变成脚本。
享受:
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
稍等片刻,全部安装完毕
对我来说,这与安装被损坏以及 ubuntu 存储库不兼容或最新有关。以下导致了一个有效的 npm/node 安装:
sudo curl -sL https://deb.nodesource.com/setup_4.x |须藤 -E bash -
sudo apt-get install -y nodejs
我按照上面的说明(eush77 说的)删除了 node_modules 文件夹中的 npm 文件夹。但是仍然有损坏的 link 导致此错误消息。
/usr/local/bin/npm: 没有那个文件或目录
所以删除损坏的 link:
rm /usr/local/bin/npm
然后像这样让它指向正确的位置:
sudo ln -s /usr/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
进入全局node_modules目录(不知道的可以npm root -g)
$ cd /usr/local/lib/node_modules
curl -L https://www.npmjs.com/install.sh | sh
您还可以从 https://nodejs.org/en/download/current/
重新安装 node
我使用找到的官方安装程序包重置了它:https://nodejs.org/en/
通过提供与当前 Node 版本不兼容的包,玩弄 n 和 nvm 最终为我损坏了 node_modules 包。
我怀疑它适用于其他环境,因为它结合了 Node 和 npm 安装。
即使我遇到了同样的问题,解决以下步骤的最简单方法对我也很有效。
卸载 Nodejs。
转到C:/Users/<user_name>/AppData/Roaming.
删除 npm
目录。
重新安装 Nodejs
(最新的 v6.11.3,包括 npm 3.10.10)。
完成 现在尝试检查 (npm -v
) 是否正常。
对我来说,我必须删除项目的 node_modules
文件夹。然后我清理了缓存以防万一并做了一个新的 npm i
并且它能够执行 node-sass post-install 而不是在 are-we-there-yet
丢失时出错。
如果在上面的解决方案中移动全局 node_modules
对您不起作用,请尝试:
- 删除项目的本地
node_modules
- 在您项目的根目录中:
rm -rf node_moduldes
npm cache clean -f
npm i
我在调用 yarn dev
命令时在本地服务器上部署项目时遇到了同样的问题。
浏览了所有博客、文章和资料后,我仅通过简单的这 2 个命令就可以正常工作。
npm list
检查它现在指向的版本。对我来说,当我收到此错误时。它指向系统。
我刚刚使用了 nvm use v{VERSION}
例如nvm use v10.5.0
(对我来说)它开始工作了。所有错误都消失了,并且在调用 yarn dev
时成功部署了项目。在做任何其他事情之前先试试这个。我强烈推荐。
我尝试在 mac 和 Yosemite 上安装 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)
有人知道问题是什么或更好的解决方案吗?
您删除了它的某些依赖项,从而破坏了 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
应该又可以工作了。
eush77 说了什么,但如果你在 Windows:
从下载最新的包 https://nodejs.org/download/release/npm/
解压,替换nodejs node-modules目录下的"npm"目录 (默认 C:\Program Files\nodejs\node_modules)
我一直在狂热地尝试在我的 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 版本,这对我来说太旧了。
为了在节点上获得最新版本,我将使用 npm 安装 'n' 包。使用 n,我将安装最新版本的节点。
npm install -g n
n stable
对于 root 用户(我用来安装全局包),我需要将以下行添加到我的 ~/.bashrc
文件中,这将允许 root 用户访问 /usr/local/bin 命令。 (您可能不需要这一步)
export PATH=/usr/local/bin:$PATH
此时我的node版本是4.0.0,是node最新的稳定版本。
现在更新 npm,这是有史以来最烦人的事情。
直接更新到最新版本总是会导致 "are-we-there-yet",我只能推测为 "NO, and Quit Asking or I will turn this node around"
相反,我发现首先通过版本 3.3.3 安装可以解决此问题。
npm install -g npm@3.3.3
现在版本 3.3.3 已安装并且可以正常工作,不会出现 "are-we-there-yet" 错误。
谢天谢地。把你的手臂放在里面,你系好安全带孩子们,因为我们快到了......
npm install -g npm
通过最后一条命令,我能够使用最新版本的 npm 和最新稳定版本的 node。在撰写本文时是 3.3.5
从现在开始,我的命令如下。
n stable
npm install -g npm
从现在开始,每次我 运行 这些时,我都会获得不受干扰的 npm 旅行,而孩子们不会在后面抱怨。
备注
由于我正在管理许多服务器,其中 none 默认带有节点,我发现自己不得不一遍又一遍地执行此任务..
因此我决定将这些说明变成脚本。
享受:
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
稍等片刻,全部安装完毕
对我来说,这与安装被损坏以及 ubuntu 存储库不兼容或最新有关。以下导致了一个有效的 npm/node 安装:
sudo curl -sL https://deb.nodesource.com/setup_4.x |须藤 -E bash - sudo apt-get install -y nodejs
我按照上面的说明(eush77 说的)删除了 node_modules 文件夹中的 npm 文件夹。但是仍然有损坏的 link 导致此错误消息。
/usr/local/bin/npm: 没有那个文件或目录
所以删除损坏的 link:
rm /usr/local/bin/npm
然后像这样让它指向正确的位置:
sudo ln -s /usr/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
进入全局node_modules目录(不知道的可以npm root -g)
$ cd /usr/local/lib/node_modules
curl -L https://www.npmjs.com/install.sh | sh
您还可以从 https://nodejs.org/en/download/current/
node
我使用找到的官方安装程序包重置了它:https://nodejs.org/en/
通过提供与当前 Node 版本不兼容的包,玩弄 n 和 nvm 最终为我损坏了 node_modules 包。
我怀疑它适用于其他环境,因为它结合了 Node 和 npm 安装。
即使我遇到了同样的问题,解决以下步骤的最简单方法对我也很有效。
卸载 Nodejs。
转到
C:/Users/<user_name>/AppData/Roaming.
删除
npm
目录。重新安装
Nodejs
(最新的 v6.11.3,包括 npm 3.10.10)。完成 现在尝试检查 (
npm -v
) 是否正常。
对我来说,我必须删除项目的 node_modules
文件夹。然后我清理了缓存以防万一并做了一个新的 npm i
并且它能够执行 node-sass post-install 而不是在 are-we-there-yet
丢失时出错。
如果在上面的解决方案中移动全局 node_modules
对您不起作用,请尝试:
- 删除项目的本地
node_modules
- 在您项目的根目录中:
rm -rf node_moduldes
- 在您项目的根目录中:
npm cache clean -f
npm i
我在调用 yarn dev
命令时在本地服务器上部署项目时遇到了同样的问题。
浏览了所有博客、文章和资料后,我仅通过简单的这 2 个命令就可以正常工作。
npm list
检查它现在指向的版本。对我来说,当我收到此错误时。它指向系统。我刚刚使用了
nvm use v{VERSION}
例如nvm use v10.5.0
(对我来说)它开始工作了。所有错误都消失了,并且在调用yarn dev
时成功部署了项目。在做任何其他事情之前先试试这个。我强烈推荐。