2014-06-24 31 views
16

Tôi đang bắt đầu Learn to Build Modern Web Apps with the AngularJS Tutorial và gặp sự cố rất sớm.Nhận lệnh npm: không tìm thấy lệnh. Làm thế nào để cài đặt lại NPM khi Node đã được cài đặt? NPM đã đi đâu?

Tôi có nút cài đặt:

/path/ang-news node -v 
v0.10.26 

Tôi đã sử dụng NPM trước đó nhưng đã chạy vào rắc rối với Yeoman. Tôi đã lặp lại những bước này một lúc nhưng Grunt ngừng làm việc nên tôi bắt đầu mới.

Tôi chạy:

$ sudo npm install -g generator-angular 

và tất cả các phụ thuộc được cài đặt cho đến khi tôi nhận được:

npm WARN package.json [email protected] No repository field. 
npm ERR! peerinvalid The package generator-karma does not satisfy its siblings' peerDependencies requirements! 
npm ERR! peerinvalid Peer [email protected] wants [email protected]>=0.8.2 

sau đó tôi cố gắng cập nhật:

$ npm update -g 

tôi nên đã chạy như một người quản lý. Tôi nhận được tấn của các thông báo lỗi, điều này dường như thích hợp nhất:

npm ERR! Please try running this command again as root/Administrator. 

npm ERR! System Darwin 13.1.0 
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "update" "-g" 
npm ERR! cwd /path/ang-news 
npm ERR! node -v v0.10.26 
npm ERR! npm -v 1.4.3 

npm ERR! not ok code 0 

Sau đó, tôi đã cố gắng gỡ bỏ cài đặt máy phát điện-nghiệp và bắt đầu tươi:

$ sudo npm uninstall -g generator-karma 

nhưng nhận:

sudo: npm: command not found 

$ npm -v 
-bash: /usr/local/bin/npm: No such file or directory 

My đầu tiên câu hỏi là: Tại sao NPM đột nhiên biến mất?

[EDIT: Kudos to @ try-catch-finally để chỉ ra sự tàn phá xảy ra khi chuyển đổi giữa người dùng bình thường và sudo khi phát lệnh. Nó chỉ ra rằng tôi sai lầm môi trường người dùng của tôi và NPM đã không còn được cài đặt]

sự hiểu biết của tôi là NPM được cài đặt khi bạn cài đặt Node, vì vậy câu hỏi thứ hai của tôi là:. Làm thế nào để cài đặt lại chỉ NPM? Tôi không muốn phải cài đặt lại Nút từ đầu.

[EDIT: Kudos để @hawk và @ try-catch-cuối cùng - nó không xuất hiện mà cài đặt NPM mình là một lựa chọn, nhưng có easy ways to reinstall both.]

+0

Tôi không nghĩ rằng điều đó có thể xảy ra. Chỉ có thể trả lời là cài đặt lại nút hoàn toàn. – hawk

+1

@hawk Cảm ơn. Thật là sự xấu hổ. Nó sẽ là tuyệt vời để tìm hiểu làm thế nào và tại sao điều này xảy ra vì vậy tôi có thể tránh nó trong tương lai. – Rotimi

+2

Tại sao bạn trộn các lệnh như người dùng bình thường và gốc? '$ npm update -g' như bạn đã viết có vẻ sai, nếu bạn xử lý các gói chung, bạn sẽ cần phải chạy nó như là root. Buồn cười: bạn đã sử dụng 'sudo' nhưng thực hiện một lệnh' npm' khác. Có lẽ bạn đã làm hỏng môi trường người dùng? Bạn có thể kiểm tra xem '/ usr/local/bin/npm' có thực sự không tồn tại không? Hãy thử 'tìm/usr' nó. Trên lỗi ban đầu 'Peer [email protected] muốn máy phát điện-karma @> = 0.8.2': Có vẻ như các 'máy phát điện-angular' guys cập nhật các phụ thuộc mà không có mặt trong repo (tôi đi qua như vậy các vấn đề). –

Trả lời

37
  1. Nếu bạn có một nút làm việc , bạn có thể cài đặt lại NPM

curl -L https://npmjs.org/install.sh | sudo sh

  1. Thật không may npm update -g không làm gì ai mong đợi. Khắc phục điều này là trên lộ trình npm, nhưng sẽ mất một lúc.

  2. Bạn hầu như không bao giờ cần phải cài đặt gói trên toàn cầu, trừ khi (như generator-angular hoặc grunt-cli) bạn muốn sử dụng gói đó làm lệnh.

+3

Tuyệt vời, nó cố định điều sudo: npm: lệnh không tìm thấy –

+0

Cảm ơn @sam, nó giúp tôi giải quyết vấn đề của mình, –

4

Chỉ trong trường hợp bạn đã làm điều này với bia, tôi khuyên bạn nên bài viết này trên github. Sẽ giúp bạn tiết kiệm rất nhiều thời gian.

https://gist.github.com/DanHerbert/9520689

Sửa NPM Trên Mac OS X dành cho người dùng Homebrew Chạy các lệnh sau để loại bỏ tất cả các module NPM toàn cầu hiện có, gỡ bỏ cài đặt nút & NPM, cài đặt lại nút với giá trị mặc định ngay, cài đặt npm là pacakge riêng của nó và định cấu hình vị trí cho các mô-đun npm chung được cài đặt.

rm -rf /usr/local/lib/node_modules 
brew uninstall node 
brew install node --without-npm 
echo prefix=~/.node >> ~/.npmrc 
curl -L https://www.npmjs.com/install.sh | sh 

Nút và npm phải được cài đặt chính xác tại thời điểm này. Bước cuối cùng là thêm ~/.node/bin vào PATH của bạn để các lệnh bạn cài đặt trên toàn cầu có thể sử dụng được. Tôi đã thêm dòng này vào tập lệnh ~/.path, được chạy qua ~/.bash_profile. Chạy dòng sau như là.

export PATH="$HOME/.node/bin:$PATH" 
+0

Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên bao gồm các phần quan trọng của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. - [Từ đánh giá] (/ đánh giá/chất lượng thấp-bài viết/10501700) –

+0

@ValentinLorentz lời xin lỗi của tôi, có bản cập nhật.Hãy cho tôi biết nếu nó có vẻ tốt. – alphapilgrim

0

tôi gặp vấn đề một cách chính xác như vậy sau khi thực hiện lệnh để cài đặt các NPM với phiên bản mới nhất về redhat 7.1:

npm install [email protected] -g 

sau khi một số cố gắng tôi tìm thấy giải pháp:

yum reinstall npm 

Tôi hy vọng điều này có thể giúp người dùng redhat/centos.

Các vấn đề liên quan