Cách nâng cấp nút đúng cách bằng nvm


231

Có thể nâng cấp nodengay tại chỗ, thay vì cài đặt thủ công phiên bản ổn định mới nhất không?

Tôi đã cài đặt phiên bản node.js5.0 với nvm, nhưng bây giờ tôi muốn cập nhật nó lên 5.4. Tôi đang cố gắng tránh phải cài đặt lại tất cả các gói toàn cầu của mình ( ví dụ: bằng cách chạy npm install -g grunt-cli bower yo yoman-angular-generator blabla blablablabla...).

Câu trả lời:


328

Điều này có thể làm việc:

nvm install NEW_VERSION --reinstall-packages-from=OLD_VERSION

Ví dụ:

nvm install 6.7 --reinstall-packages-from=6.4

sau đó, nếu bạn muốn, bạn có thể xóa phiên bản trước đó bằng:

nvm uninstall OLD_VERSION

Trong trường hợp của bạn, NEW_VERSION = 5,4 OLD_VERSION = 5.0

Ngoài ra, hãy thử:

nvm install stable

1
Liều dùng bằng cách nvm install stableloại bỏ tất cả các gói được cài đặt bao gồm cả nút cài đặt thay vì cập nhật chúng?
Syed

1
Trên thực tế, điều này không còn hoạt động. Có một vấn đề với npm: github.com/creationix/nvm/issues/811
jhuesos

5
Bởi nvm ls-remotebạn có thể thấy tất cả các bản phát hành.
Daniel

7
Điều này làm việc cho tôi : nvm install node --reinstall-packages-from=$(nvm current). Điều đó sẽ cập nhật Node.js lên phiên bản mới nhất và cài đặt lại các gói npm toàn cầu từ bất kỳ phiên bản trước nào.
cyfrost

Nếu bạn không gỡ cài đặt, hãy sử dụng nvm deactivatevà thử lại.
izilotti

185

Bạn có thể chỉ cần chạy một trong các lệnh sau:

Phiên bản mới nhất : Phiên bản
nvm install node --reinstall-packages-from=node
ổn định (LTS) :
nvm install lts/* --reinstall-packages-from=node

Điều này sẽ cài đặt phiên bản thích hợp và cài đặt lại tất cả các gói từ phiên bản nút hiện đang sử dụng. Điều này giúp bạn tiết kiệm từ việc xử lý các phiên bản cụ thể.

Chỉnh sửa - thêm lệnh để cài đặt phiên bản LTS theo nhận xét @ m4js7er.


20
Nếu bạn muốn cập nhật lên phiên bản ổn định mới nhất (lts - được khuyến nghị cho hầu hết người dùng), thì bạn nên chạy : nvm install lts/* --reinstall-packages-from=node. Sau đó, bạn có thể dọn dẹp các phiên bản của bạn với nvm uninstall [old version]. Bạn có thể liệt kê tất cả các phiên bản đã cài đặt với nvm ls.
m4js7er

Suy nghĩ kỹ trước khi thực hiện --reinstall-packages-from=nodeBạn có thể sử dụng các môi trường toàn cầu khác nhau cho các phiên bản 6, 8 và 10.
đóng góp vào

1
Tôi đã buộc lệnh nvm install lts/* --reinstall-packages-from=nodenhưng nó báo lỗi cho Version 'lts/*' not found - try 'nvm ls-remote' to browse available versions.tôi rằng tôi đang sử dụng NVM phiên bản 0.30.1, có lẽ NVM của tôi quá cũ. Tôi kết thúc bằng tay thay thế lts/*với 10.15.2/*để làm cho nó làm việc.
Zhang

16

HAI Giải pháp đơn giản:

Để cài đặt phiên bản nút mới nhất và cài đặt lại các gói phiên bản cũ, chỉ cần chạy lệnh sau.

nvm install node --reinstall-packages-from=node

Để cài đặt ltsphiên bản nút (hỗ trợ dài hạn) mới nhất và cài đặt lại các gói phiên bản cũ, chỉ cần chạy lệnh sau.

nvm install --lts /* --reinstall-packages-from=node

Đây là một GIF để hỗ trợ câu trả lời này. nvm


Không thể làm việc này - Tôi chỉ nhận đượcIf --reinstall-packages-from is provided, it must point to an installed version of node.
wickywills

@wickywills "nút: cài đặt phiên bản nút mới nhất" có thể bạn đã cài đặt và LTS hoặc phiên bản cụ thể và do đó nodekhông trỏ đến phiên bản mới nhất được cài đặt. Hoặc bạn cần cập nhật nvm.
iBaff

10

nếu bạn có 4.2 và muốn cài đặt 5.0.0 thì

nvm install v5.0.0 --reinstall-packages-from=4.2

câu trả lời của gabrielperales là đúng ngoại trừ việc anh ta bỏ lỡ dấu "=" ở cuối. nếu bạn không đặt dấu "=" thì phiên bản nút mới sẽ được cài đặt nhưng các gói sẽ không được cài đặt.

nguồn: sitepoint


2

Node.JS để cài đặt phiên bản mới.

Bước 1: Cài đặt NVM

npm i -g nvm

Bước 2: NODE Phiên bản mới nhất cài đặt

nvm install *.*.*(NodeVersion)

Bước 3: Phiên bản nút được chọn

nvm use *.*.*(NodeVersion)

Hoàn thành


0

Bí danh Bash để cập nhật phiên bản hoạt động hiện tại:

alias nodeupdate='nvm install $(nvm current | sed -rn "s/v([[:digit:]]+).*/\1/p") --reinstall-packages-from=$(nvm current)'

Phần sed -rn "s/v([[:digit:]]+).*/\1/p"biến đổi đầu ra từ nvm currentđó chỉ trả về một phiên bản chính của nút, tức là: v13.5.0-> 13.

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.