2012-09-11 96 views
133

我想我的Mac上安裝Twitter的亭子,和我用涼亭找不到命令

npm install bower -g 

然後我試圖bower --help,輸出功率爲bower command not found。這是爲什麼?

+2

'npm install'的輸出是什麼?它失敗了嗎?它是否將窗口安裝到某個位置,而不是「PATH」? – chesles

+0

安裝後出現[「命令未找到」的可能重複](http://stackoverflow.com/questions/15846076/command-not-found-after-installation) –

回答

317

就像在這個問題(npm global path prefix)所有你需要的是正確的設置npm prefix

$ npm config set prefix /usr/local 
$ npm install -g bower 

$ which bower 
>> /usr/local/bin/bower 

然後bower應位於只是在你的$PATH

+0

我想補充說,如果您使用多個項目,這不是最正確的答案。 Bower應該從'package.json'的'node_modules'域中安裝,而不是全局的,因爲不同的項目可以使用不同的版本(這就是'npm'的全部)。真正的問題是系統無法找到本地的bower可執行文件。 –

+0

@BrunoFinger:在全球範圍內安裝bower時,該答案不能解決問題。但是使用本地節點包可能是處理項目特定工具的更好方式。 –

51

我幾乎可以肯定你實際上並沒有正確地安裝它。既然你正試圖在全球範圍內安裝它,您將需要使用sudo運行:

sudo npm install -g bower

+0

直到我添加了-g – AliBZ

+3

之後,該礦才工作必須如何安裝bower,否則它只會安裝在執行命令的文件夾中。 -g表示全局,它也爲模塊創建所需的鏈接,這些模塊可以作爲系統命令執行,bower,grunt-cli,甚至npm都是明確的例子。 –

+0

不要安裝sudo!只需使用brew醫生並製作brew醫生建議的修補程序,然後您就不需要使用sudo! – djangofan

3

事實證明,這不是一個涼亭問題,雖然它顯示了與我涼亭。

它似乎是一個節點 - 哪個問題。 如果文件位於路徑中,但setuid/setgid位已設置,則找不到該文件。

這是一個s位設置的文件:(unix','會發現它沒有問題)。

LS -al的/ usr/local/bin中 -rwxrwsr-- 110根NMT 5535636 2012年7月17日的git

這裏是一個節點,其嘗試:

> which.sync('git') 
Error: not found: git 

我更改權限(chomd 755 git)。 現在節點 - 它可以找到它。

> which.sync('git') 
'/usr/local/bin/git' 

希望這會有所幫助。

1

我正在使用節點版本管理器。我收到此錯誤消息,因爲我已切換到不同版本的節點。當我切換回安裝涼亭的節點版本時,這個錯誤消失了。在我的情況下,命令是nvm use stable