2012-09-11 26 views
133

Tôi cố gắng để cài đặt twitter Chòi chơi trên máy Mac của tôi, và tôi đã sử dụnglệnh Chòi chơi không tìm thấy

npm install bower -g 

Sau đó, tôi đã cố gắng bower --help, và đầu ra là bower command not found. Tại sao vậy?

+2

Đầu ra từ 'npm install' là gì? Nó đã thất bại? Đã cài đặt bower đến một số vị trí không phải trên 'PATH' của bạn? – chesles

+0

có thể trùng lặp của ["lệnh không tìm thấy" sau khi cài đặt] (http://stackoverflow.com/questions/15846076/command-not-found-after-installation) –

Trả lời

317

Cũng giống như trong câu hỏi này (npm global path prefix) tất cả bạn cần là để thiết lập thích hợp npm prefix.

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

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

Sau đó, bower phải được đặt ngay trong số $PATH của bạn.

+0

Tôi muốn thêm rằng đây không phải là câu trả lời đúng nhất nếu bạn làm việc với nhiều dự án. Bower nên được cài đặt trong 'node_modules'locally từ' package.json' và không phải trên toàn cầu, vì các dự án khác nhau có thể sử dụng các phiên bản khác nhau (đó là toàn bộ điểm của 'npm'). Vấn đề thực sự là hệ thống không thể tìm thấy thực thi bower cục bộ. –

+0

@BrunoFinger: Khi cài đặt bower vào phạm vi toàn cầu, câu trả lời đó không giải quyết được vấn đề.Tuy nhiên, sử dụng các gói nút cục bộ có thể là cách tốt hơn để xử lý các công cụ cụ thể của dự án. –

51

Tôi gần như chắc chắn bạn chưa thực sự cài đặt chính xác. Kể từ khi bạn đang cố gắng để cài đặt nó trên toàn cầu, bạn sẽ cần phải chạy nó với sudo:

sudo npm install -g bower

+0

Tôi không làm việc cho đến khi tôi thêm -g – AliBZ

+3

Đó là làm thế nào bower phải được cài đặt, nếu không nó sẽ chỉ được cài đặt trên thư mục mà bạn thực thi lệnh. -g nghĩa là toàn cầu và nó cũng tạo ra các liên kết cần thiết cho các mô-đun có thể được thực hiện như các lệnh hệ thống, bower, grunt-cli, thậm chí npm là các ví dụ rõ ràng về điều này. –

+0

Không cài đặt với sudo! Chỉ cần sử dụng bác sĩ brew và thực hiện các bản sửa lỗi mà bác sĩ pha cho thấy và sau đó bạn sẽ không cần phải sử dụng sudo! – djangofan

3

Điều này hóa ra là KHÔNG phải là một vấn đề bower, mặc dù nó xuất hiện cho tôi với bower.

Có vẻ như đó là vấn đề về nút. Nếu tệp nằm trong đường dẫn, nhưng có tập bit setuid/setgid, sẽ không tìm thấy tệp đó.

Đây là tệp có bộ bit s: (unix 'which' sẽ tìm thấy tệp không có vấn đề gì).

ls-al/usr/local/bin -rwxrwsr-- 110 nmt gốc 5.535.636 17 tháng 7 năm 2012 git

Dưới đây là một nút-mà cố gắng:

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

tôi thay đổi quyền (chomd 755 git). Bây giờ, nút có thể tìm thấy nó.

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

Hy vọng điều này sẽ hữu ích.

1

Tôi đang sử dụng trình quản lý phiên bản nút. Tôi đã nhận được thông báo lỗi này vì tôi đã chuyển sang một phiên bản nút khác. Khi tôi chuyển về phiên bản của nút mà tôi đã cài đặt bower, lỗi này đã biến mất. Trong trường hợp của tôi, lệnh là nvm use stable