【问题标题】: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 版本,我会收到此错误

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

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

    1. 卸载 Nodejs。

    2. 转到C:/Users/&lt;user_name&gt;/AppData/Roaming.

    3. 删除npm目录。

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

    5. 完成现在尝试检查 (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。然后我开始了这些方向。
        • 告诉你什么。在 stackoverflow.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 对您不起作用,请尝试上述解决方案:

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

                【讨论】:

                  【解决方案11】:

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

                  在浏览了所有博客、文章和资料后,我只需通过简单的这 2 个命令就可以使用它。

                  1. npm list 检查它现在指向的版本。对我来说,当我收到这个错误时。它指向系统。

                  2. 我刚刚使用了nvm use v{VERSION},例如nvm use v10.5.0(对我来说)它开始工作了。所有错误都消失了,项目在调用yarn dev 时成功部署。在做任何其他事情之前先试试这个。我强烈推荐。

                  【讨论】:

                    猜你喜欢
                    • 2015-12-27
                    • 2020-07-13
                    • 2015-12-22
                    • 2015-12-20
                    • 2014-05-25
                    • 2018-08-11
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多