安装完Gulp后出现“找不到命令'gulp'”的错误提示

277
安装了 gulp.js 后,使用 gulp 命令时出现 no command 'gulp' found 错误,即使在相同的目录中安装了它。查看 node_modules/.bin/ 目录后,我可以看到 gulp 可执行文件存在。
是否是我的npm安装出了问题?

10
你是否进行了全局安装?npm install gulp -g - Mukesh Soni
3
我遇到了同样的问题。我进行了全局安装,但仍然没有任何反应... - iluvpinkerton
这个链接肯定会对你有所帮助 https://dev59.com/wZzha4cB1Zd3GeqPAyqI#45707907 - murtuza hussain
9个回答

527

这是非常正常的。 如果你想在命令行中使用gulp-cli,你需要全局安装它。

npm install --global gulp-cli

请查看安装说明

另外,node_modules/.bin/不在您的$PATH中。 但是,当运行npm脚本时,npm会自动添加它(请参见此博客文章以供参考)。

因此,您可以将scripts添加到您的package.json文件中:

{
    "name": "your-app",
    "version": "0.0.1",
    "scripts": {
        "gulp": "gulp",
        "minify": "gulp minify"
    }
}

然后你可以运行npm run gulpnpm run minify来启动gulp任务。


2
我被要求以sudo(Root . Admin)身份运行npm install -g gulp,但如果我这样做,当我退出到普通用户时,它无法找到gulp命令。我认为不应该在root中进行所有操作,我宁愿让我的环境正常工作。 所以,有人知道可能导致此问题的原因吗? - landed
我想这完全取决于node的安装方式和位置。当使用https://github.com/creationix/nvm时,您无需以root身份安装全局库。 - Brian Clozel
我想我在Mac OSX上使用安装程序安装了nodejs.org,我不知道nodejs和node之间的区别。 - landed
4
请记住,gulp本身不再是全局包。相反,global-cli是(npm -i -g gulp-cli),并且全局的gulp应该先卸载! - Ricardo Magalhães

14

我使用以下命令解决了问题,而无需重新安装node:

$ npm uninstall --global gulp gulp-cli
$ rm /usr/local/share/man/man1/gulp.1
$ npm install --global gulp-cli

1
这是一个稍微更新的版本,适用于我使用NVM来管理我的Node环境: $ npm uninstall -g gulp gulp-cli $ rm /Users/[usrName]/.nvm/versions/node/[nodeVersion]/share/man/man1/gulp.1 $ npm install -g gulp-cli - JustJen
全局变量不是一个好主意。 - Michal

13

我其实有同样的问题。

这个链接可能是我最好的猜测:

nodejs vs node on ubuntu 12.04

我尝试了这个方法来解决我的问题:

sudo apt-get --purge remove node 
sudo apt-get --purge remove nodejs 
sudo apt-get install nodejs
sudo ln -s /usr/bin/nodejs /usr/bin/node

8
由于许多应用程序/软件包都在那里寻找它,因此您还需要运行 sudo ln -s /usr/bin/nodejs /usr/bin/node 命令。 - Seth
1
ln -s [target] [name|directory] 命令创建一个符号链接(“别名”或“快捷方式”)。请参见 http://linuxcommand.org/man_pages/ln1.html。 - defines
仍然无法工作...我有点觉得这很琐碎。但是来自另一个SO页面的此链接得到了正确的答案。只需在本地运行即可https://dev59.com/_pXfa4cB1Zd3GeqPkc5d?noredirect=1&lq=1 - swdev

8

我解决了这个问题,删除了gulp并重新安装了gulp-cli:

rm /usr/local/bin/gulp
npm install -g gulp-cli

2
还需要使用 sudo - App Dev Guy
需要使用sudo,但最终这个方法起作用了。 - ahnbizcad

4

如果仍未解决,请尝试将以下内容添加到您的package.js脚本中:

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

然后运行npm run gulp,它将运行来自gulpfile.js的gulp脚本。


2
尝试使用sudo,它可以正常工作!! 最初的回答。
sudo npm install --global gulp-cli

请了解--global的含义,以及它如何无法解决其他人电脑上的问题。 - Michal

2

在 Mac 上安装 - Sierra - 在多次尝试使用多个不同的指示操作全局地通过命令行安装和运行 gulp 失败后,我将以下内容添加到我的路径中,然后它就可以正常工作了:

export PATH=/usr/local/Cellar/node/7.6.0/libexec/npm/bin/:$PATH

我从安装gulp时的文本输出中得到了该路径。

1
在我的情况下只有一个问题,只需在package.json的脚本部分中加入"gulp":"gulp",然后使用npm run gulp命令。

1

我使用的是 lubuntu 19.10。

我使用了前面答案的组合,并没有调整 $PATH

  1. npm uninstall --global gulp gulp-cli 这会删除任何已经存在的包。
  2. sudo npm install --global gulp-cli 以 root 用户重新安装它。

如果你想要复制和粘贴

npm uninstall --global gulp gulp-cli && sudo npm install --global gulp-cli 

应该可以工作

我猜--global在这里是不必要的,因为它使用sudo安装,但我还是使用了它以防万一。


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