2015-09-22 18 views
136

Tôi đã cài đặt Node JS vài tháng trước và chơi xung quanh một chút. Hôm nay, tôi muốn bắt đầu tìm hiểu thêm về nút và trước khi mã hóa, tôi quyết định tôi muốn đảm bảo rằng tôi có phiên bản mới nhất.Sự nhầm lẫn số phiên bản NodeJS

Tôi đã kiểm tra phiên bản và nó giống như phiên bản v0.10.3x. Tôi đã xem trên trang web NodeJS và nó hiển thị phiên bản mới nhất là v4.1.0. Vì vậy, tôi nghĩ Woahhh! Tôi nâng cấp tốt hơn và tôi không thể tin rằng nó chuyển nhanh đến phiên bản 4.x chỉ trong vài tháng.

Tôi đã dành khá nhiều thời gian để tìm ra cách gỡ bỏ hoàn toàn nút và npm vì tôi dường như không thể nâng cấp nó.

Cuối cùng tôi đã xóa tất cả, sau đó cài đặt trong CentOS 7 bằng yum. Tôi biết tôi sẽ không nhận được phiên bản mới nhất thông qua yum nhưng, tôi đoán nó sẽ đủ gần.

Sau khi cài đặt, tôi đang ở v0.10.40.

Tôi có cảm giác mình không hiểu gì về số phiên bản NodeJS.

Ai đó có thể làm sáng tỏ cho tôi không? Cảm ơn trước.

+1

Coi trọng sự nhầm lẫn, đây là một liên kết đến nodejs phát hành các loại thông tin - https://github.com/nodejs/node#release-types – arcseldon

+3

"Tôi đã dành khá nhiều thời gian cố gắng tìm hiểu làm thế nào để gỡ bỏ hoàn toàn nút và npm vì tôi dường như không thể nâng cấp nó. " - Hãy xem nvm - https://github.com/creationix/nvm điều này làm cho việc cài đặt, thay đổi và gỡ cài đặt các phiên bản của nút và npm dễ dàng hơn nhiều. – arcseldon

Trả lời

194

Vâng nếu bạn chỉ đã sử dụng thời gian chạy node.js chính thức sau đó nó sẽ xuất hiện để nhảy từ 0.12.x đến 4.0.0 trong một ngã swoop. Những gì bạn có thể không biết là các nhà phát triển nút bị ốm vì bao nhiêu kho lưu trữ nút bị trì trệ đã tạo thành một nhánh của dự án và gọi nó là io.js. Dưới tên io.js, dự án đã tiến lên phía trước trong sáu tháng qua; nó bắt đầu tại v1.x và lặp đi lặp lại tất cả các cách thông qua 2.x và 3.x trong thời gian đó. Cũ node.js đã sử dụng một hệ thống phiên bản khác nhau trong đó các phiên bản lẻ không ổn định và thậm chí cả các phiên bản đều ổn định. Io.js đã chuyển sang sử dụng các ngữ nghĩa phiên bản semver như các gói trên npm đã được sử dụng.

Sau rất nhiều ý kiến ​​Joyent (người duy trì ban đầu của node.js) cuối cùng được lưu lại và giúp tạo thành một ủy ban mở xung quanh nút trong một nỗ lực để thúc đẩy dự án theo cùng cách mà io.js đã làm. Một vài tháng trước, họ đã đồng ý hợp nhất io.js trở lại vào node.js (đó là mục tiêu của những ai đã tạo ra io.js ngay từ đầu). Cuối cùng họ đã hoàn thành việc sáp nhập hai dự án gần đây. Tên io.js không còn nữa và node.js tồn tại khi bắt đầu từ v4.0. Nó sẽ tiếp tục sử dụng ngữ nghĩa semver như io.js đã làm :)

Việc chuyển tiếp với nút sẽ đơn giản hơn. Tôi rất vui khi thấy dự án diễn ra từ đâu.

+2

Giải thích tuyệt vời, đây phải là câu trả lời được chọn. – a20

+2

Cảm ơn! Tôi đã biết những gì đã xảy ra với io.js khi họ bắt đầu ngã ba, nhưng không phải là một nhà phát triển nút đang hoạt động, đã bị bối rối bởi phiên bản schism khi cố gắng tìm ra những gì tôi đã sử dụng so với những gì đã có sẵn. – nbering

+5

Nhưng tại sao vẫn còn phát triển trong v0.12. * (Tôi thấy bản phát hành v0.12.14 vào ngày 6 tháng 5 năm 2016). Đây có phải là tính tương thích ngược không? – user276648

4

Đó là vì v4.0, dự án Node.js và dự án io.js hiện được kết hợp. Đối với dự án io.js, các số phiên bản giống như v3.x, v2.x và v1.x.

Reference https://nodejs.org/en/blog/release/v4.0.0/

+1

Giải thích rất kém. Nó giả định OP biết tình trạng io/node và thêm vào chứ không phải là bất kỳ sự nhầm lẫn nào cho một newbie. – a20

2

nếu bạn sử dụng NPM bạn có thể nâng cấp với

sudo npm cache clean -f 
sudo npm install -g n 
sudo n stable 

một lần làm thử node -v để xem những gì bạn nhận được

xem chi tiết tại http://davidwalsh.name/upgrade-nodejs

+3

Anh ấy không hỏi làm thế nào để nâng cấp, anh ấy hỏi về chuỗi số phiên bản 0.x VS số phiên bản 4.x của số phiên bản. – a20

+4

Chắc chắn không phải là câu trả lời cho câu hỏi của OP, mà chỉ là những gì tôi đang tìm kiếm! – ngoue