iT邦幫忙

2025 iThome 鐵人賽

DAY 3
0

前言

Node.js 用了一陣子之後,總是會碰到舊專案需要切換版本的問題,但我們總不可能每次切換專案都要重新修改自己的開發環境重新安裝一次不同的版本,今天就來整理好用的版本切換工具 NVM(Node Version Manager)

npm 版本狀態說明

接續上一篇,先來看看官網的狀態說明
https://ithelp.ithome.com.tw/upload/images/20250917/20177951i73ZZINy0v.png

  • 版本週期:所有主要版本先進入 6 個月的 Current 狀態
  • 奇數版本:6 個月後停止支援(如 Node.js 9、11、13...)
  • 偶數版本:轉入 Active LTS,提供 30 個月長期支援(如 Node.js 10、12、14...)
  • 生產環境建議:只使用 Active LTS 或 Maintenance LTS 版本

現在才知道為什麼每次裝的剛好都是偶數版本

安裝 NVM

Windows

NVM GitHub
首先,先到官網去下載安裝檔
nvm-windows

nvm-setup.zip下載
https://ithelp.ithome.com.tw/upload/images/20250917/20177951qFixCjn4FT.png
解壓縮後,後續就跟著說明安裝就好
https://ithelp.ithome.com.tw/upload/images/20250917/20177951bu2n7nCwt1.png

安裝完成之後,可以到終端機測試,輸入nvm會看到下圖說明
https://ithelp.ithome.com.tw/upload/images/20250917/201779511rRj0KGXLn.png

常用指令

需要用到的指令不外乎就是

  • 安裝新的 node 版本 nvm install [node 版本號]
  • 列出已安裝的 node 版本 清單 nvm list
  • 切換到指定的 node 版本 nvm use [node 版本號]

https://ithelp.ithome.com.tw/upload/images/20250917/20177951DZgr2fVOs3.png
https://ithelp.ithome.com.tw/upload/images/20250917/20177951OwQBg3KBKy.png

Mac OS

Mac OS 的差別是沒有安裝檔可以下載,但也是有官方教學
官方教學

npm 版本號辨別

因為常常會忘記舊順便整理起來

v 18.16.0 為例

  • 18 - 主版本號(Major)

    • 代表重大變更或不向下相容的修改
    • 從 v17 以下升級到 v18 可能需要修改程式碼
  • 16 - 次版本號(Minor)

    • 代表新增功能但向下相容
    • 添加新的 API 或功能,但不會破壞現有程式碼
    • 從 v18.15.x 升級到 v18.16.x 應該是安全的
  • 0 - 修訂版本號(Patch)

    • 代表錯誤修復和安全性更新
    • 不包含新功能,純粹修復問題
    • 應該立即更新,風險最低

另外還有常常看到的^~

^ (Caret) - 相容版本範圍

規則:允許 Minor 和 Patch 更新,但不允許 Major 更新
^18.16.0來說

允許更新:
18.16.0 → 18.16.1  (Patch)
18.16.0 → 18.17.0  (Minor)
18.16.0 → 18.20.5  (Minor + Patch)

不允許更新:
18.16.0 → 19.0.0   (Major)

~ (Tilde) - 合理接近版本

規則:只允許 Patch 更新
~18.16.0來說

✅ 允許更新:
18.16.0 → 18.16.1  (Patch)
18.16.0 → 18.16.9  (Patch)

❌ 不允許更新:
18.16.0 → 18.17.0  (Minor)
18.16.0 → 19.0.0   (Major)

參考資料

nvm github
Mac OS X 安裝 nvm


上一篇
Day2 - Node.js 基礎知識 & 安裝
下一篇
Day4 - Node.js 建立專案
系列文
欸欸!! 這是我的學習筆記6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言