【问题标题】:Gulp command not found after install安装后找不到 Gulp 命令
【发布时间】:2014-09-25 06:15:13
【问题描述】:

我安装了 gulp(全局),它看起来可以正常工作,因为它运行了以下代码:

├── tildify@0.2.0
├── interpret@0.3.5
├── pretty-hrtime@0.2.1
├── deprecated@0.0.1
├── archy@0.0.2
├── minimist@0.2.0
├── semver@2.3.2
├── orchestrator@0.3.7 (stream-consume@0.1.0, sequencify@0.0.7, end-of-stream@0.1.5)
├── chalk@0.5.1 (escape-string-regexp@1.0.1, ansi-styles@1.1.0, supports-color@0.2.0, strip-ansi@0.3.0, has-ansi@0.1.0)
├── gulp-util@2.2.20 (lodash._reinterpolate@2.4.1, dateformat@1.0.8-1.2.3, vinyl@0.2.3, through2@0.5.1, multipipe@0.1.1, lodash.template@2.4.1)
├── liftoff@0.12.0 (extend@1.2.1, minimist@0.1.0, resolve@0.7.4, findup-sync@0.1.3)
└── vinyl-fs@0.3.5 (graceful-fs@3.0.2, lodash@2.4.1, mkdirp@0.5.0, strip-bom@0.3.1, vinyl@0.2.3, through2@0.5.1, glob-watcher@0.0.6, glob-stream@3.1.14)

但是当我输入gulp 时,它会显示-bash: gulp: command not found

知道发生了什么吗?

【问题讨论】:

  • Mr_Green 的意思是:sudo npm install gulp -g

标签: macos bash terminal npm gulp


【解决方案1】:

原来 npm 安装在错误的目录中,所以我不得不通过运行以下代码来更改“npm config prefix”:

npm config set prefix /usr/local

然后我在全局范围内重新安装了 gulp(使用 -g 参数)并且它工作正常。

这篇文章是我找到解决方案的地方:http://webbb.be/blog/command-not-found-node-npm

【讨论】:

  • 谢谢!也解决了我的问题:)
  • 太棒了。谢谢。
  • 这个解决方案也帮助了我
  • 谢谢,这行得通。太奇怪了。我将它安装在 macbook 1 上,它可以工作,macbook 2,不工作,所以我必须这样做。疯了。
  • 我想知道为什么 StackOverflow 没有将此作为第一个答案!显然它是正确的。
【解决方案2】:

不知道为什么这个问题被否决了,但我遇到了同样的问题,按照博文建议解决这个问题。我应该补充的一件事是,就我而言,一旦我跑了:

npm config set prefix /usr/local

我确认npm root -g 指向/usr/local/lib/node_modules/npm,但为了在/usr/local/lib/node_modules 中安装gulp,我必须使用sudo

sudo npm install gulp -g

【讨论】:

  • 我正在寻找这个解决方案!谢谢!命令:npm config set prefix /usr/local 已解决问题!
【解决方案3】:

如果您使用tcsh(这是我在 Mac OS X 上的默认 shell),您可能只需要在安装完成后在 shell 中键入rehash

npm install -g gulp

紧随其后的是:

rehash

否则,如果这是您第一次安装gulp,您的shell 可能无法识别安装了新的可执行文件——因此您需要启动一个新的shell,或者在当前shell 中键入rehash

(对于您全局安装的每个命令,这基本上是一次性的。)

【讨论】:

    【解决方案4】:

    我意识到这是一个旧线程,但对于 Future-Me 和后代,我认为我应该在“将 npm 作为 sudo 运行”讨论中添加我的两分钱。 免责声明:我不使用 Windows。这些步骤仅在非 Windows 机器上得到验证,包括虚拟机和物理机。

    您可以通过更改对 npm 的默认目录的权限来避免使用 sudo。


    如何:更改权限以便在没有sudo 的情况下运行 npm

    第 1 步:找出 npm 的默认目录在哪里。

    • 为此,请打开终端并运行:
      npm config get prefix

    第 2 步:根据该命令的输出继续:

    • 场景一: npm 的默认目录是/usr/local
      对于大多数用户,您的输出将显示 npm 的默认目录是 /usr/local,在这种情况下您可以跳到第 4 步更新目录的权限。
    • 场景二:npm 的默认目录是/usr/Users/YOURUSERNAME/node_modules/Something/Else/FishyLooking
      如果你发现npm 的默认目录不是/usr/local,而是你无法解释或看起来很可疑,您应该转到第 3 步更改 npm 的默认目录,否则您可能会在更大范围内搞砸您的权限

    第 3 步:更改 npm 的默认目录:

    • 有几种方法可以解决这个问题,包括专门为全局安装创建一个目录,然后将该目录添加到您的 $PATH,但由于 /usr/local 可能已经在您的路径中,我认为这样做更简单只需将 npm 的默认目录更改为该目录即可。像这样:npm config set prefix /usr/local
      • 有关我提到的其他方法的更多信息,请参阅 npm 文档here

    第四步:更新npm默认目录的权限:

    • 确认 npm 的默认目录位于合理位置后,您可以使用以下命令更新其权限:
      sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

    现在您应该能够在没有sudo 的情况下运行npm <whatever>注意:您可能需要重新启动终端才能使这些更改生效。

    【讨论】:

      【解决方案5】:

      我遇到了类似的问题,我做了以下步骤,它成功了。转到 mac 终端并执行命令,

      1.npm 配置设置前缀/usr/local

      2.sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

      这两个命令将正确设置 npm 路径,您不再需要在 npm 中使用 sudo。 接下来卸载gulp

      1. npm 卸载 gulp

      2. 在没有 sudo 的情况下再次安装 gulp, npm install gulp -g

      这应该可行!

      【讨论】:

        【解决方案6】:

        我在安装后遇到了“找不到命令”的问题,但我已安装到 /usr/local 中,如上述解决方案中所述。

        我的问题似乎是由我使用 sudo 运行安装引起的。我做了以下。

        1. 使用 sudo 再次删除 gulp
        2. 将 /usr/local/lib/node_modules 的所有者更改为我的用户
        3. 在没有 sudo 的情况下再次安装 gulp。 “npm install gulp -g”

        【讨论】:

        • 似乎更明智的是,我不需要使用 sudo 在本地安装任何东西,为什么我需要使用 sudo - 对我来说,当我开始使用 sudo 时,当你不运行时事情就会中断命令行为 sudo - 就像用户下的日常开发一样。我倾向于认为你的方式更正确 - sudo 并不总是最好的答案,尽管它似乎暂时解决了。
        【解决方案7】:

        如果您在 Mac 运行使用 root 权限

        sudo npm install gulp-cli --global

        检查是否安装运行

        gulp -v
        

        CLI 版本:2.2.0(输出)

        本地版本:未知

        【讨论】:

          【解决方案8】:

          您需要这样做npm install --global gulp。它对我有用,我也有这个问题。这是因为您没有全局安装此软件包。

          【讨论】:

            【解决方案9】:

            我结合上面和其他地方的答案在 Win10 上进行了这项工作。在这里为他人和未来的我发帖。

            我按照此处的说明进行操作:https://gulpjs.com/docs/en/getting-started/quick-start,但在输入 gulp --version 后的最后一步,我收到了消息 -bash: gulp: command not found

            解决这个问题:

            1. 我将 %AppData%\npm 添加到我的 Path 环境变量中
            2. 关闭所有 gitbash(cmd、powershell 等)并重新启动 gitbash。
            3. 然后 gulp --version 起作用了

            另外,找到以下原因为什么不全局安装 gulp 以及如何删除它(但不确定这是否可取):

            what does gulp-"cli" stands for?

            How to uninstall Gulp CLI from NPM globally?

            【讨论】:

              【解决方案10】:

              在我的例子中,在 npm install 之前添加 sudo 解决了 gulp command not found 问题

              sudo npm install

              【讨论】:

                【解决方案11】:

                如果您想保持前缀不变,只需将其 bin 目录导出到您的 PATH 变量:
                export PATH=$HOME/your-path/bin:$PATH
                我将此行添加到我的 $HOME/.profile 并获取了它。

                将前缀设置为/usr/local 使您可以使用sudo,所以我喜欢将它放在我的用户目录中。您可以使用npm prefix -g 检查您的前缀。

                【讨论】:

                  【解决方案12】:

                  在企业代理之后,全局命令通常不起作用,因此您可以在本地安装 gulp 的位置运行命令。

                  【讨论】:

                    猜你喜欢
                    • 2014-04-09
                    • 2014-07-24
                    • 2016-06-09
                    • 1970-01-01
                    • 2016-04-10
                    • 2018-03-10
                    • 2013-03-28
                    • 2016-11-04
                    • 2022-01-12
                    相关资源
                    最近更新 更多