Command line zsh:未找到命令:gulp

Command line zsh:未找到命令:gulp,command-line,zsh,Command Line,Zsh,我用自制软件安装了zsh,并将shell改为它。我在尝试运行gulp命令时遇到了一个问题,在我将shell更改为zsh之前,该命令就起作用了 zsh: command not found: gulp 一些研究让我相信这与我的人生道路有关。我的路径看起来像是我的.zshrc文件 导出路径=“/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin” 我想说我用brew安装了node。如何在不更改回默认shell的情况下将gulp与zsh一起使用 感谢您的帮助。提前

我用自制软件安装了zsh,并将shell改为它。我在尝试运行
gulp
命令时遇到了一个问题,在我将shell更改为zsh之前,该命令就起作用了

zsh: command not found: gulp
一些研究让我相信这与我的人生道路有关。我的路径看起来像是我的
.zshrc
文件

导出路径=“/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin”

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


感谢您的帮助。提前谢谢

$HOME/.node/bin
添加到path变量,即将此行添加到
.zshrc

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

通常不需要将
PATH
设置为
~/.zshrc
中的文本值,这可能是个坏主意。这样做时,您可以删除以前添加到
路径中的一些目录

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

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

PATH=$HOME/.node/bin:$PATH
到您的
~/.zshrc

注意:由于
PATH
已经是环境的一部分,因此无需再次导出它


通常,如果要向路径添加内容,可以使用:

PATH="/something/new/bin:$PATH"
这将
/something/new/bin
前置到
路径

如果您真的想从
路径中删除某些内容
这应该可以做到:

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

这将从
路径中删除任何出现的
/something/old/bin
(斜杠需要转义),然后删除重复的冒号。

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

作为工具的一部分:
VivaGraphJS
我做了这件事,它成功了:

node\u模块/bin/gulp释放

得到:

[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

打开.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"

虽然这是一篇老文章,但上面的解决方案都不适合我(Catalina 10.15.3)。所以基本上我的问题不是安装gulp,而是没有正确的链接

我运行的命令是:-

  • npm配置集前缀/usr/local

  • 连接海湾


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

    我意识到这是一个老问题,但我最近遇到了这个问题,这个错误的原因不同

    至少对我来说,当我在我的机器上使用node 12.x时,我使用gulp3.9.1继承了一个遗留项目

    在本例中,我需要切换到Node 10.0.0,删除package-lock.json和Node_模块,然后重新安装节点包并运行gulp

    步骤:

    • 删除package-lock.json,节点\模块文件夹

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

      旋度-o-| bash

    • 使用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

    • 在我的情况下,重建节点sass:

      npm重建节点sass

    • 然后,您可以使用gulp:

      吞咽


    希望这对某人有所帮助。

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

    那么,gulp
    二进制文件在哪里?在旧shell中尝试
    whereis gulp
    ,查看该路径是否在
    path
    变量中。
    whereis gulp
    不会返回任何内容。但是
    哪个gulp
    返回这个:
    /Users/realph/.node/bin/gulp
    。然后将
    $HOME/.node/bin
    添加到您的路径。@Siguza添加到
    .zshrc
    文件中。@Abdennour的回答提供了一个简单的解决方案:[在zsh中安装npm后找不到命令]()谢谢!这很有效。需要澄清的是,这行代码正在将我的节点文件夹添加到
    $PATH
    变量?是的。特别是,从一开始,节点文件夹中的任何二进制文件都将覆盖命令行中系统文件夹中的二进制文件。这很有意义。谢谢我还有一个问题,那就是为什么我在zsh中大口大口大口大口喝有问题。我得到了这个错误:
    events.js:72 thrower;//未处理的“错误”事件
    。抱歉,我无法帮助您。无论如何,如果你为这个问题提出一个新的问题,这可能是最好的。在MacOS Catalina上,这对我来说是有效的,尽管有一些调整。按原样使用命令时出错
    gyp WARN EACCES当前用户(“nobody”)无权访问dev dir”/Users/my_user/Library/Caches/node gyp“
    。然而,在项目中本地运行该命令效果很好,我可以使用
    gulp
    我使用相同的mac os版本,这个答案解决了我的问题,多亏了洛蒂,我猜如果删除执行npm链接的文件夹,gulp将不起作用。如果是这样的话,我不会推荐这个补丁,它是一个肮脏的补丁。如果你删除执行npm链接的项目,我会停止工作。这意味着每次您都会遇到此问题,并且每次删除提到的文件夹时都必须搜索此修复程序。因此,我不建议采用这种方法。