2014-03-06 192 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時從文本輸出中獲得了該路徑。