NPM不工作,总是得到这个错误 – >错误:找不到模块'我们在那里'
我试图用优胜美地在mac上安装grunt。 节点已经安装在最新版本中。 如果我在terminalinput“节点-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)
有人知道有什么问题或更好的解决scheme?
你已经通过删除它的一些依赖关系来破坏npm
。
are-we-there-yet
npmlog
是npmlog
依赖于npm
本身,并以某种方式删除它。 对于这种情况通常简单的解决scheme是重新安装一个包,但是如果npm
不能运行,这是行不通的。 幸运的是, npm
tarball预装了依赖关系,因此从头开始安装npm
与解压缩tarball一样简单。
1)转到全局的node_modules
目录(如果可以运行, npm root -g
打印什么):
$ cd /usr/local/lib/node_modules
2)删除损坏的npm
目录或将其移动到其他位置(请注意,您可能需要提升权限以执行以下步骤):
$ mv npm /tmp
3)从registry中下载并解压新鲜的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
应该再次工作。
转到全局的node_modules目录(如果你不知道,请参考npm root -g)
$ cd /usr/local/lib/node_modules curl -L https://www.npmjs.com/install.sh | sh
我一直在狂热地尝试在我的centos 7机器上获得节点和npm的最新版本。
不幸的是,我已经为这个错误困扰了近一个星期了。 我终于find了一个可行的解决scheme。
如果你的npm目前是坏的,那么再安装一个工作版本是最简单的。
我从代码安装。 假设安装了git,以下命令将完成该目标
cd ~ git clone https://github.com/nodejs/node.git nodejs_code cd nodejs_code ./configure make make install
在安装完npm和node之后,顺便说一下不是稳定的版本(而不是来自源代码的stream血边缘)。
在写这个节点的时候安装的版本是5.0.0-pre,这对我来说太新了,npm是2.14.4,这对我来说太旧了。
为了得到节点上的最新版本,我将使用npm安装'n'包。 使用n,我将安装最新版本的节点。
npm install -gn 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被安装并且没有“我们在那里”错误。
谢天谢地。 保持你的arm内侧,你系好安全带的孩子,因为我们差不多在那里…..
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 -gn n stable npm install -g npm@3.3.3 npm install -g npm
把这个放入nodeimport.sh之后,唯一要做的就是让它可执行并执行它。
$ chmod +x importnode.sh $ ./importnode.sh
等一下,所有的安装。
eush77说,但如果你在Windows上:
从https://nodejs.org/download/release/npm/下载最新的软件包;
解包并replacenodejs node-modules目录中的“npm”目录(默认为C:\ Program Files \ nodejs \ node_modules)
我遵循上面的指示(什么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
您也可以从https://nodejs.org/en/download/current/
重新安装node
对我来说,这必须与安装被破坏,也许Ubuntu的存储库不兼容或最近。 以下是导致npm / node安装正常工作的原因:
sudo curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash – sudo apt-get install -y nodejs
我通过使用官方安装程序包find它重置: https : //nodejs.org/en/
使用n和nvm玩弄最终会破坏node_modules包,通过提供与当前Node版本不兼容的包。
我怀疑它会适用于其他环境,因为它将Node和npm安装在一起。
即使我有同样的问题,最简单的方法来解决以下步骤为我工作。
1)卸载Nodejs。
2)转到C:/User/AppData/Roaming.
3)删除npm
目录。
4)重新安装Nodejs
(最新的v6.11.3 ,包括npm 3.10.10 )。
5)完成现在尝试检查( npm -v
)将工作正常。