【问题标题】:zsh: command not found: gulpzsh:找不到命令:gulp
【发布时间】:2015-07-01 07:24:39
【问题描述】:

我已经用 homebrew 安装了 zsh 并将我的 shell 更改为它。我在尝试运行 gulp 命令时遇到问题,该命令在我将 shell 更改为 zsh 之前有效。

zsh: command not found: gulp

一些研究让我相信它与我的 PATH 有一些关系。我的 PATH 看起来像是我的 .zshrc 文件。

export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

我想说我用 brew 安装了节点。如何在不更改回默认 shell 的情况下将 gulp 与 zsh 一起使用?

感谢任何帮助。提前致谢!

【问题讨论】:

  • 那么,gulp 二进制文件在哪里?在您的旧 shell 中尝试 whereis gulp 并查看该路径是否在您的 PATH 变量中。
  • whereis gulp 不返回任何内容。但是which gulp 会返回这个:/Users/realph/.node/bin/gulp
  • 然后将$HOME/.node/bin 添加到您的路径中。
  • @Siguza 到.zshrc 文件?
  • @Abdennour 的回答提供了一个简单的解决方案:[Command not found after npm install in zsh](stackoverflow.com/questions/12743928/…)

标签: command-line zsh


【解决方案1】:

$HOME/.node/bin 添加到您的路径变量,即将此行添加到您的.zshrc

export PATH="$HOME/.node/bin:$PATH"

【讨论】:

  • 谢谢!这很好用。为了清楚起见,那行代码是将我的节点文件夹添加到 $PATH 变量中?
  • 是的。特别是在它的开头,因此节点文件夹中的任何二进制文件都将覆盖命令行上系统文件夹中的二进制文件。
【解决方案2】:

通常没有必要——这可能是个坏主意——将PATH 设置为~/.zshrc 中的文字值。这样做时,您可能会删除之前添加到 PATH 的一些目录。

在你的情况下,因为它与另一个 shell 一起工作,我会首先尝试删除你设置 PATH 的行,因为 zsh 应该从它自己的父环境继承 PATH

如果没有添加包含gulp的路径(可能是因为之前在旧shell的配置中添加了),你可以添加

PATH=$HOME/.node/bin:$PATH

致您的~/.zshrc

注意:由于PATH已经是环境的一部分,不需要再次导出。


一般来说,如果你想给PATH添加一些东西,你可以使用:

PATH="/something/new/bin:$PATH"

这会将/something/new/bin 添加到PATH

如果您真的想从 PATH 中删除某些内容,这应该可以解决问题:

PATH=${${PATH//\/something\/old\/bin/}//::/:}

这会从PATH 中删除所有出现的/something/old/bin(斜线需要转义),然后删除重复的冒号。

【讨论】:

  • 这很有意义。谢谢!我还有一个问题是为什么我在 zsh 中运行 gulp 时遇到问题。我收到此错误:events.js:72 throw er; // Unhandled 'error' event.
  • 对不起,我不能帮你。无论如何,如果您为此提出一个新问题,那可能是最好的。
【解决方案3】:

我做了sudo npm install gulp -g,输入了我的密码,安装后它对我有用。

【讨论】:

  • 在 MacOS Catalina 上,这对我有用,尽管有一些调整。按原样使用命令会产生错误gyp WARN EACCES current user ("nobody") does not have permission to access the dev dir "/Users/my_user/Library/Caches/node-gyp"。但是,在项目中本地运行命令工作得很好,我可以使用gulp
  • @JonathanKibet 我也收到此错误。你能在这里分享命令吗?谢谢
  • @QadirHussain 命令就在您正在评论的 this 答案上。 sudo npm install gulp -g
  • 这个答案中的这个命令实际上是在制造问题。您提到了一些调整,这些调整是什么?
【解决方案4】:

作为工具的一部分:VivaGraphJS 我这样做了,它奏效了:

node_modules/.bin/gulp release

得到:

[09:56:05] Using gulpfile ~/KynKon/Sandbox/VivaGraphJS/gulpfile.js
[09:56:05] Starting 'clean'...
[09:56:05] Starting 'build'...
[09:56:06] Finished 'build' after 923 ms
[09:56:06] Finished 'clean' after 1.03 s
[09:56:06] Starting 'release'...
[09:56:06] Finished 'release' after 59 ms
$ npm test

【讨论】:

    【解决方案5】:

    打开 .zshrs 文件并添加:

    export PATH="$PATH:$HOME/.rvm/bin"
    PATH=$PATH:/usr/local/bin
    npm set prefix ~/.npm
    PATH="$HOME/.npm/bin:$PATH"
    PATH="./node_modules/.bin:$PATH"
    

    【讨论】:

      【解决方案6】:

      虽然这是一篇旧帖子,但上述解决方案均不适合我(Catalina 10.15.3)。所以基本上我的问题不在于安装 gulp 而不是正确的链接。

      我运行的命令是:-

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

      2. npm 链接 gulp

      希望这对任何人都有帮助。

      【讨论】:

      • 我使用相同的 mac os 版本,这个答案解决了我的问题,非常感谢
      • 我猜如果您删除执行 npm 链接的文件夹,gulp 将无法工作。如果是这样,我不会推荐这个修复,它是一个肮脏的修复。
      【解决方案7】:

      我意识到这是一个老问题,但我最近遇到了这个问题,并且这个错误的另一个原因。

      至少对我来说,当我在我的机器上使用节点 12.x 时,我继承了一个使用 Gulp 3.9.1 的遗留项目。

      在这种情况下,我需要切换到 Node 10.0.0,删除 package-lock.json 和 node_modules,然后重新安装节点包并运行 gulp。

      步骤:

      • 删除 package-lock.json、node_modules 文件夹

      • 安装 NVM(管理节点版本):

        卷曲 -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.2/install.sh |重击

      • 使用 NVM:

        导出 NVM_DIR="$HOME/.nvm"

        [ -s "$NVM_DIR/nvm.sh" ] && 。 "$NVM_DIR/nvm.sh" # 这会加载 nvm

        [ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # 这会加载 nvm bash_completion

      • 安装节点 10.0.0(适用于 Gulp 3.9.1):

        nvm 安装 10.0.0

      • 使用 node.js 10.0.0

        nvm 使用 10.0.0

      • 在我的例子中,重建 node-sass:

        npm 重建节点-sass

      • 然后,你可以使用 gulp:

        一饮而尽

      希望这对某人有所帮助。

      【讨论】:

        【解决方案8】:

        sudo npm link gulp 并提供密码解决了我的问题。

        【讨论】:

        • 如果您删除执行 npm 链接的项目,我觉得 gulp 将停止工作。这意味着每次您都会遇到此问题,并且每当您删除提到的文件夹时都必须搜索此修复程序。因此,我不建议进行此修复。
        【解决方案9】:

        当您在项目文件夹中安装 gulp 时,要使用 gulp,它需要从安装路径运行,为此您需要在项目文件夹中安装 gulp 时提供路径。在上面的答案之一中,已经给出了如何在安装 gulp 时设置路径。要解决此问题,还有另一种处理方法。您可以全局安装 gulp,它可以从系统的任何位置访问,您只需执行以下命令:-

        npm i --global gulp
        

        这里 --global 是您为全局安装软件包而提供的参数。

        i 代表安装

        【讨论】:

          猜你喜欢
          • 2019-11-25
          • 2016-07-30
          • 2017-08-09
          • 2016-04-12
          • 2016-06-26
          • 2021-12-15
          • 2016-05-15
          • 2020-07-24
          相关资源
          最近更新 更多