lệnh bower không tìm thấy


158

Tôi đã cố gắng cài đặt twitter bower trên máy Mac của mình và tôi đã sử dụng

npm install bower -g

Sau đó, tôi đã thử bower --help, và đầu ra là bower command not found. Tại sao vậy?


2
Đầu ra từ npm installđâu? Có thất bại không? Có phải nó đã cài đặt Bower đến một số vị trí không có trên của bạn PATH?
jches


Câu trả lời:


365

Giống như trong câu hỏi này ( tiền tố đường dẫn toàn cầu npm ) tất cả những gì bạn cần là đặt đúng npm prefix.

UNIX:

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

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

Windows ans NVM:

$ npm config set prefix /c/Users/xxxxxxx/AppData/Roaming/nvm/v8.9.2
$ npm install -g bower

Sau đó bowernên được đặt chỉ trong của bạn $PATH.


1
Tôi muốn nói 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 tại node_modulesđịa phương từ package.jsonvà 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ộ quan điểm npm). Vấn đề thực sự là hệ thống không thể tìm thấy mã nguồn thực thi cục bộ.
Bruno Finger

@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à một cách tốt hơn để xử lý các công cụ cụ thể của dự án.
Petr Joachim

Tôi nghĩ rằng nếu tiền tố npm được đặt thành / usr / local, npm install -g sẽ thất bại nếu không có sudo.
im lặng

Chúng tôi không khuyên bạn nên sử dụng Bower cho các dự án mới. Vui lòng xem xét Sợi và Webpack hoặc Bưu kiện.
Daniel

60

Tôi gần như chắc chắn rằng bạn không thực sự cài đặt nó chính xác. Vì bạn đang cố gắng cài đặt nó trên toàn cầu, bạn sẽ cần chạy nó với sudo:

sudo npm install -g bower

3
Đó là cách Bower phải được cài đặt, nếu không nó sẽ chỉ được cài đặt trên thư mục nơi bạn thực hiện lệnh. -g có 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 thi như các lệnh hệ thống, bower, grunt-cli, thậm chí npm là những ví dụ rõ ràng về điều này.
Erick Ruiz de Chavez

Đừng cài đặt với sudo! Chỉ cần sử dụng brew Doctor và thực hiện các sửa lỗi mà bác sĩ brew gợi ý và sau đó bạn sẽ không cần sử dụng sudo!
djangofan

4

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

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

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

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

Đây là một nút - 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'

Hi vọng điêu nay co ich.


3

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 trở lại phiên bản của nút nơi 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


3

Ngoài ra, bạn có thể sử dụng npxđi kèm với npm> 5.6.

npx bower install


1
Đây phải là câu trả lời được chấp nhận. Bạn không bao giờ nên cài đặt các mô-đun toàn cầu với npm.
chovy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.