2014-03-06 150 views
149

通过NPM安装gulp.js后,我在从安装到其中的同一目录运行gulp命令时收到no command 'gulp' found错误。未找到命令'gulp' - 安装后

当在node_modules/.bin/目录下查看时,我可以在那里看到gulp可执行文件。

我的NPM安装有问题吗?

+4

你做了全球安装吗? 'npm install gulp -g' –

+2

我遇到同样的问题。我做了全球安装,但仍然没有... – iluvpinkerton

+0

此链接肯定会帮助你 https://stackoverflow.com/a/45707907/5222115 –

回答

308

这很正常。 如果您想在命令行上使用gulp-cli,则需要全局安装它。

npm install --global gulp-cli 

请参阅the install instruction

另外,node_modules/.bin/不在您的$PATH中。但是在运行npm脚本时它会自动添加npm(请参阅this blog post for reference)。

所以,你可以添加scriptspackage.json文件:

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

然后,您可以运行npm run gulpnpm run minify推出一口任务。

+2

我被要求运行npm install -g gulp as sudo(Root。Admin )但如果​​我这样做,那么当我退出到普通用户时,它不能找到gulp命令。 我不认为它的好处是保持根源,我宁愿让我的环境正常工作。 因此,任何人都知道什么可能会导致此问题pls .. – landed

+0

我想这一切都取决于/如何安装节点。使用https://github.com/creationix/nvm时,不需要root来安装全局库。 –

+0

我想我使用Mac OSX上的安装程序来安装nodejs.org我不知道nodejs和node @£$ @ – landed

11

我其实有同样的问题。

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

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

+0

哇你的评论意味着很多。但以上评论的含义是什么? –

+1

'ln -s [target] [name | directory]'命令创建一个符号链接(“别名”或“快捷方式”)。看到http://linuxcommand.org/man_pages/ln1.html – defines

9

我解决了这个问题,而使用下面的命令重新安装节点:

$ 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

4

我解决了删除gulp a的问题第二安装一饮而尽-CLI再次:

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

还需要使用'sudo' –

1

安装到Mac - 塞拉利昂 - 许多失败的尝试后安装,并通过命令行运行全局一饮而尽使用几种不同的指令,我发现我已将此添加到我的路径和它的工作:

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

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