我在全局和本地都安装了gulp

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

当我试图奔跑时,我得到了

“gulp”不能被识别为内部或外部命令、可操作程序或批处理文件。

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

我已经尝试运行节点gulpfile.js指向我的gulpfile,它运行没有错误,当然,它以require('gulp')开始。

对于如何在Windows(8.1)上快速工作,有什么建议吗?


当前回答

我遇到过这个问题。我通过添加%APPDATA%/npm到Path环境变量来解决这个问题。我没有定义NODE_PATH变量,它仍然为我工作。希望这对其他人也有用!!

其他回答

所以我还没有看到这个答案,NODE_PATH和所有其他所谓的环境变量修复没有做任何事情,所以我想我应该添加我的暴力方式来让它工作:

显然,你安装了最新的node.js,然后进行npm install。我还必须先升级一些依赖项(当我试图安装gulp时,得到了这些警告,在我运行这些命令之前,它告诉我它缺少popper.js依赖项Bootstrap 4所需的-即使它实际上在那个部门是ok的!):

npm install -g minimatch(输入)

npm install -g graceful-fs(输入)

我看到当我执行npm install -g gulp时,再次,尽管(并且它无法运行),它正在把它放进去 C:\Users\myname\AppData\Roaming\npm\ node_modules

因为我从命令行运行gulp,它被cd到我的项目文件夹中: C:\Users\myname\Documents\Visual Studio 2015\Projects\myproject

我怀疑它对另一个地方一无所知。还有我的包裹。Json没有:

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

相反,它有:

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

因此,即使已经安装到项目中,它也不能运行gulp。我想在这一点上,如果我运行start而不是gulp,它可能会工作,但我在“gulp”和另一行后面添加了一个逗号:

"scripts":{
    "start": "gulp",
    "gulp": "gulp"
 }

然后复制gulp文件夹 C:\Users\myname\AppData\Roaming\npm\ node_modules \吞咽 来 C:\Users\myname\Documents\Visual Studio 2015\Projects\myproject\node_modules\gulp

在那之后它运行得很好。

一个正确的方法:

Cmd + R:输入“%appdata%” 进入npm文件夹 复制整个路径,如“C:\Users\Blah…\npm\” 转到我的电脑+右键单击“属性” 系统高级设置(左侧) 点击环境变量 点击编辑路径 加上“C:\Users\Blah…”“\npm\”到结尾,在后面输入“;” 单击“确定”并重新打开cmd

我在windows 10中设置时也遇到了类似的问题。我的答案是特定于windows的(看看在linux或OSX解决方案的bash中修改路径的答案)

我遇到的核心问题是npm的文件夹没有在路径中注册。 我最初尝试在cmd提示符中更改这一点。

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

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

这应该工作,但对我来说,它没有,因为setx只接受1024个字符的限制…(是的,这对我来说也是毫无意义的)。

所以尝试上面的方法,如果你得到一个警告,比如达到1024限制,那么你可以用我最后做的另一种方法。

首先,当你还在控制台时,输入echo %appdata%\npm…这是你的NPM文件夹,你想添加到路径,所以添加到你的剪贴板。

你必须进入注册表并到达以下文件夹:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \会话管理器\ \控制环境

然后在你的剪贴板中添加npm文件夹路径的“Path”值。重新启动以激活新值,现在应该可以运行了。

最后,对所有内容进行测试

>npm install -g gulp
>gulp

有同样的问题,不是最好的解决方案,但在全球安装:

npm install -g gulp

当然,最好还是保留它的包装。Json,所以你可以执行以下操作在本地安装它,并在package.json中添加一个条目:

npm install --save-dev gulp

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

我已经从这个答案中得到了一个条件(我不知道为什么)

https://stackoverflow.com/a/27295145/1175496

也就是说,我的PATH已经包含了%APPDATA%\npm

在我的情况下,问题是npm没有安装模块(再次,我不知道为什么)

因此我需要这样做:

$ npm配置前缀-g %APPDATA%/npm

之后,跑步 $ npm install -g gulp(或安装任何其他模块)将模块放在PATH需要它的地方。