安装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个回答

268

您忘记安装gulp-cli包:

npm install -g gulp-cli

然后您可以从命令行运行“gulp”命令。


是的,在注册表更改无效后,这个方法解决了问题:' ) - edencorbin
这个文件甚至没有被包含在我们的Artifactory中,所以无法获取并安装它。 - vapcguy
这解决了“2018年免费崩溃课程学习Bootstrap 4”的教程中的问题。我会在那个人的教程中放置一个链接,以便其他可能遇到同样问题的人可以查看答案。 - Enrique Bruzual
1
我的情况不适用此解决方案。我正在使用带自托管代理的 Azure 管道。我不想全局安装 Gulp,因为不同的项目可能需要不同版本的 Gulp。我有哪些选项?请帮忙。 - Rajesh Swarnkar
回到这样的老项目里,由于无法记住它们的运作方式,真的很困难。非常感谢,这为我节省了一些时间。 - Deshen

230
问题和答案可以在这个问题中找到:https://dev59.com/Imkw5IYBdhLWcg3w4ecD#9588052 例如 gulp 这样的 npm 模块没有安装到路径中,因此当您在 CMD 中运行它们时找不到它们。
如果已全局安装 gulp,可以使用以下步骤:
  1. 创建一个名为 NODE_PATH 的环境变量
  2. 将其设置为:在 Windows 8-10 上为 %AppData%\npm\node_modules%AppData%\npm
  3. 关闭 CMD,并重新打开以获取新的 ENV 变量。
运行 npm lsnpm ls -g 显示它们已安装,但由于 "缺少链接",CMD 找不到它们。

15
然而,需要注意的是,如果没有全局安装gulp,则提供的答案不起作用。在初始安装时,%AppData%\npm文件夹完全为空,如果你只在项目文件夹中安装gulp而不使用-g选项,则不会将批处理文件放在\npm\目录中,也不会将其文件放在\npm\node_modules中。因此,在这里,两个答案都是必要的。 - Évelyne Lachance
8
我尝试了这个方法,但仍然没有成功,直到我意识到我的“Path”环境变量名称是小驼峰式命名而不是全大写的“PATH”。我将“Path”修改为“PATH”,并按照@CIAODO的答案,在开头添加了我的npm目录。由于某种原因,“%AppData%\Roaming\npm”对我无效,所以我不得不使用完整路径:“C:\Users[user.name]\AppData\Roaming\npm;”。结合这个答案,这对我有用。 - R Brill
%AppData%\Roaming\npm 对我也不起作用,我不得不使用完整路径:"C:\Users[user.name]\AppData\Roaming\npm;"。 - user2345998
36
在Windows 10上,将%AppData%\npm添加到PATH里对我很有用。 - outofBounds
如果您正在使用Git Bash终端,则它不知道% AppData%\ Roaming \ npm,而是我将其添加到〜/ .bash_profile中:export PATH = $ PATH:/ c / Users / MyUsername / AppData / Roaming / npm,并在执行以下操作后找到gulp:source〜/ .bash_profile。 - phpguru
显示剩余6条评论

92
  1. 确保您已经安装了gulp和gulp.cmd (使用Windows搜索)
  2. 复制gulp.cmd的路径(C:\Users\XXXX\AppData\Roaming\npm)
  3. 将此路径添加到Path环境变量中 或者 编辑PATH环境变量并添加%APPDATA%\npm
  4. 重新打开命令提示符。

在Path的前面添加%APPDATA%\npm,而不是在末尾添加。


7
将 %APPDATA%\npm 添加到 Path 的开头,而不是结尾。 - Habib Adıbelli
谢谢@CIAODO!我的路径里有之前为了测试目的安装的节点垃圾,你的评论帮助我找到了它。:) - Edward
它突然停止工作了,我想是在我更改了一些其他的PATH变量之后。你的第一个解决方案是唯一有效的。谢谢。 - Martin Dawson

48
  1. 全局安装gulp。

    npm install -g gulp

  2. 在项目中本地安装gulp。

    npm install gulp

  3. 在您的package.json文件中添加以下行。

    "scripts": { "gulp": "gulp" }

  4. 运行gulp。

    npm run gulp

这对我有用。


在完成第四步后,它对我来说没有运行 - 它只是在什么也没做(至少表面上)之后返回另一个命令行提示符。如果我之后只是执行 gulp,那么它就会运行。 - vapcguy
太棒了。这是我在 AppVeyor 上解决构建失败问题的方法,而不是依赖 Gulp,我使用了类似 "package": "gulp build" 的东西。 - Crayons
但这不是一个永久性的解决方案,我需要在推送代码之前还原这些更改,因为对于其他贡献者来说,这些更改会导致构建失败冲突。:( - Awais
这不是一个好的解决方案。由于我在Azure管道中使用自托管代理,我不想全局安装gulp,因为不同的项目可能需要不同版本的gulp。 - Rajesh Swarnkar

32

我正在使用Windows 8.1,遇到了同样的问题。

我使用Node.js命令提示符安装了gulp。

npm install -g gulp

然后在Node.js命令提示符中转到所需的目录并尝试执行相应操作

gulp -v

如果您在本地找不到gulp版本,请退出当前Node.js命令提示符,并尝试在新的Node.js命令提示符中运行上述命令。

我尝试了@SteveLacy提到的NODE_PATH,但命令提示符仍然无法检测到gulp命令。


8
我不是那个给你点踩的人,但我认为你的回答并没有解决(或试图解决)问题。 - Edu Ruiz
1
无法工作,OP提到已经尝试过了。我遇到了同样的问题,尝试了一下,但并没有解决这个问题。 - SCBuergel
它提供答案吗?嗯,它解决了我的问题!非常感谢! - Radim Köhler
这里甚至没有答案。这本来就是问题。 - Vik
这是对我有效的解决方案。讨厌者总是会讨厌。 - TombMedia
这是我在我的Windows Surface Book上安装本地版本的gulp时运行的解决方案。谢谢! - AuRise

27

我遇到了同样的问题,虽然不是最佳解决方案,但可以全局安装:

npm install -g gulp

当然最好还是将其放在package.json中,这样你就可以执行以下操作将其安装到本地并在package.json中添加一个条目:

npm install --save-dev gulp

所有其他内容(gulp插件)也都在本地安装。


20

简单的解决方案只需执行npm link gulp


8
这在底层做了什么? - floor
看起来像是一个符号链接。 - A P

19

当我在尝试在同事的虚拟机上运行gulp时,遇到了相同的问题。看起来问题源于用户文件夹。

在我的环境变量中添加NODE_PATH并不能解决这个问题。

如果你编辑系统变量中的“Path”变量,并在其末尾添加“%APPDATA%\npm”,那么它应该会解决这个问题……除非你或其他人将gulp作为另一个用户而不是当前登录的用户安装了npm。

如果你想让它对所有用户都可用,将'C:\Users\yourUser\AppData\Roaming\npm'(或者gulp所在的任何位置)显式地放在其中,而不是使用'%APPDATA%\npm'。你也可以将文件移动到一个更加用户无关的路径。

别忘了启动一个新的cmd提示符,因为你打开的那一个不会自动获取新的“Path”变量。

现在可以运行'gulp'了。


17
一种正确的方法:
1. Win + R:输入"%appdata%" 2. 进入npm文件夹 3. 复制整个路径,例如"C:\Users\...\npm" 4. 打开"我的电脑",右键点击"属性" 5. 打开"高级系统设置"(在左侧) 6. 点击"环境变量" 7. 点击"编辑路径" 8. 将"C:\Users\...\npm"添加到末尾,并在其后输入";" 9. 点击确定,重新打开cmd,并尝试再次使用npm命令

我认为这里解释得很清楚,当你在 Windows 上看到 gulp 未被识别时,这应该是首先尝试的事情。 - Edu Ruiz
主要是在结尾处添加";",否则它将无法工作。 - fuser
1
cmd+R,您的意思是winkey+R吗? - Gobinda Nandi

15

您应该首先使用以下命令在全局安装gulp:

npm install gulp -g
否则路径解决方案将无法解决问题。然后使用以下命令将npm模块路径添加到环境变量PATH中:
```

否则路径解决方案将无法解决问题。然后使用以下命令将npm模块路径添加到环境变量PATH中:

```
PATH = %PATH%;%APPDATA%\npm

你添加的信息是否与其他33个答案明显不同且为新信息?我的印象是“否”,如果是这样,你可能不应该添加这个答案。 - Jonathan Leffler
1
我尝试了很多次,但都没有成功。我发现需要全局安装gulp,以避免其他人遇到同样的问题。因此,我添加了这个答案。 - Badr Bellaj

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