安装gulp后出现“找不到gulp命令”的错误

251

我已经使用以下命令在全局和本地安装了 Gulp

npm install gulp
npm install gulp -g
npm install gulp-util
npm install gulp-util -g

当尝试运行gulp时,我遇到了以下问题:

'gulp'不是内部或外部命令,可操作的程序或批处理文件。

运行npm list gulp(或-g),我发现gulp@3.7.0与我的全局或本地gulp安装位置相对应。

我尝试运行node gulpfile.js指向我的gulp文件,它可以无错误运行,并且当然,它以require('gulp')开始。

有关在Windows(8.1)上使Gulp工作的任何建议吗?


1
我在Windows上没有使用gulp,但你尝试过 npm install gulp --save-dev 吗? - soenguy
2
@soenguy 那样做并不能解决它。 - SteveLacy
我最近遇到了这个问题:结果发现我唯一忘记的事情就是将可执行程序 gulp 所在的文件夹添加到 Windows 的 %PATH% 变量中。在我的情况下是:%AppData%\Roaming\npm - AdrienW
如果你在Windows上运行gulp时出现“gulp不是内部或外部命令,也不是可运行的程序或批处理文件”的错误提示,请尝试运行gulp.js。我正在开发一个Laravel项目,并在本地运行gulp。同时,建议使用其他命令提示符而非Windows自带的,因为你可能会遇到gulp.js的错误。我使用Git bash,它可以完美地工作。 - Peter Szalay
在我的电脑上,问题出在“允许运行脚本”的权限没有开启。参考来源:http://www.octetmalin.net/windows/scripts/powershell-activer-execution-des-scripts.php(法语)必须在管理员模式下的PowerShell中运行“set-executionpolicy unrestricted”来解决这个问题。 - Patrice Poliquin
显示剩余4条评论
41个回答

14

在我的情况下,我需要通过命令 npm -g install gulp-cli 安装 gulp-cli。


9

我在Windows 10上设置时遇到了类似的问题。我的解决方案仅适用于Windows系统(如果需要Linux或OSX解决方案,请查看修改bash路径的答案)

我面临的核心问题是npm文件夹未在路径中注册。最初我尝试在命令提示符中更改此设置。

setx path "%path%;%appdata$\npm"

请注意,我使用了setx而不是set来确保环境变量的更新保持不变。还要注意它是反斜杠。

这应该可以正常工作,但对我来说却没有,因为setx只接受1024个字符的限制...(是的,这对我来说也是无意义的)。

所以尝试以上方法,如果你收到了类似于达到1024限制的警告,那么你可以像我最终做的那样采用其他方式。

首先,在控制台中输入以下内容:echo %appdata%\npm... 这是您想要添加到路径的npm文件夹,因此请将其添加到剪贴板中。

您必须进入注册表并进入以下文件夹:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

然后将'Path'值与剪贴板中的npm文件夹路径一起附加。重新启动以激活新值,现在您应该可以使用了。

using regedit

最后,测试一切是否正常。

>npm install -g gulp
>gulp

1
是的!!! 终于找到了一些有用的东西。几乎所有的答案都说要全局安装,然后它就应该可以工作了。我已经安装、卸载、重新安装、清除缓存等等。最终,这个方法起作用了。谢谢! - Josh
@Josh,很高兴我能让你运行起来。设置环境真是个麻烦事。我想我主要是因为在使用Windows shell时遇到这些小问题才转向Mac的。 - ThinkBonobo
最糟糕的是,我已经把它设置了几个月了。一直运行正常。然后有一天我在编程,发现我的命令无法识别。我在互联网上搜寻任何可以帮助的信息。每个人都说同样的话。然后你出现了,啪地一声! 它就起作用了。我理解为什么你会转向OSX。我以前从未遇到过这种问题。但是我对Windows太投入了。 - Josh
1
相信这个消息会令你受益匪浅,我认为Windows 10正在采用本地Bash Shell。对于某些工具来说,这将极大地方便我们的生活。 - ThinkBonobo
这在我的Windows Server 2008上运行良好,非常感谢! - manix

9

试着将以下内容添加到您的PATH变量中:

C:\Users\YOUR_USER\AppData\Roaming\npm

我曾经遇到过同样的问题,我解决了它,只需将路径添加到我的node模块中即可。


6

这实际上是一个与用户有关的问题。我在以user1身份登录的系统上安装了npm和node,然后设置了user2。我可以运行node,也可以运行npm命令,但无法从命令行运行任何npm包。

为了解决这个问题,我卸载了node和npm,并在正确的用户下重新安装。之后,我可以顺利地从命令行运行包。


对我来说也是一样,其他的答案都没用 - 重新安装Node和npm解决了问题。 - mfeineis

6

对我来说,最佳答案无法解决我的问题。

我正在使用一个有先前所有者的虚拟机。之前的所有者安装了一个旧版本的npm。使用此版本,我使用 npm install -g gulp 全局安装了gulp。运行命令 gulp 会返回 'gulp' 不是内部或外部命令,也不是可运行的程序或批处理文件。 如我所说,最佳答案无法解决我的问题。我基本上需要重新安装nodejs。

解决方案

  1. 重新下载 nodejs
  2. npm install -g gulp
  3. gulp -version

这为我解决了问题。


2
我建议使用nvm来切换Node版本:https://github.com/creationix/nvm - anztenney
@chrisyo8989 - 太棒了,这个对我有效,不需要环境变量,谢谢!我讨厌弄那些东西! - gcoleman0828
我重新安装了Node.js(修复模式),然后运行了gulp npm install -g gulp,而且没有重启就可以工作了 - 是的。Windows 10。 - herrfischer

4
这对我很有效:
 npm link gulp
 npm update

这就是我在Windows 7上解决问题的方法。 - Tom

4

我在Win7 x64上安装了Nodejs v0.12.3后,在尝试安装gulp时遇到了类似的问题。以下操作解决了我的问题:

  1. 卸载Nodejs
  2. 安装Nodejs v0.10.29
  3. 运行命令:npm install -g npm
  4. 运行命令:npm install -g gulp

1
我只使用了 npm install -g npmnpm install -g gulp,然后一切恢复正常。 - Edu Ruiz
我建议使用nvm来切换Node版本:https://github.com/creationix/nvm - anztenney

4

将以下路径添加到您的环境变量中 PATH C:\Users\USERNAME\AppData\Roaming\npm\


4
NodeJS安装程序似乎将用户/AppData/Roaming/npm路径添加到用户环境路径中,这是适当的。
通常情况下,命令行中的PATH环境变量是用户环境路径和系统环境路径的组合。
然而,如果用户环境路径+系统环境路径大于约1920个字符,则Windows不会合并用户和系统路径-只使用系统环境路径。
参见:https://dev59.com/2mEi5IYBdhLWcg3wb7-O#21270921 因此,当您打开Windows中的高级系统设置以编辑环境变量时,请检查用户/AppData/Roaming/npm路径是否已在用户环境PATH中。如果是,则问题是您的用户+系统路径太长,导致Windows忽略了您的用户路径。修剪您的用户和/或系统路径字符串,gulp应该按照安装方式工作。
如果您找不到要修剪的任何内容,则将用户/AppData/Roaming/npm路径添加到系统环境路径中,并称其为hack。

1
我花了好几个小时在Windows上尝试让gulp命令正常工作,最终这是对我有效的方法。所以谢谢! - MyNotes

4
我在安装后遇到了同样的问题。所以我尝试以提升权限(管理员)运行 cmd,然后它就可以工作了。
屏幕截图: cmd

CMD中的管理员模式为我解决了这个问题。 - Morten OC
我尝试了其他所有方法,但只有在以管理员模式运行命令提示符后才成功。 - MindGame
奇怪-不应需要管理员权限。如果需要管理员权限,则可能适用于某些情况,但其他问题(与Gulp无关)出现了。 - vapcguy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接