專案的工具倉庫 (node_modules/)
1. 什麼是 `node_modules/`?
您可以把 package.json
想像成是您專案的 IKEA 購物清單。它只列出了您需要購買的「傢俱」名稱(例如 nuxt
, pinia
)。
而 node_modules/
就是 IKEA 的大倉庫。
當您在終端機執行 npm install
時,npm(您的採購員)就會根據 package.json
這張購物清單,把所有傢俱(以及組裝這些傢俱所需要的所有螺絲、零件、工具)全部從倉庫裡拿出來,放到您的專案中。
這個倉庫非常巨大,但您通常只需要使用組裝好的「傢俱」(也就是函式庫的功能),而不需要直接去關心倉庫裡的細節。
2. 黃金定律:不要把它放進 Git
node_modules/
有一個非常重要的黃金定律:
原因有二:
體積龐大
這個資料夾動輒數百 MB 甚至數 GB,把它上傳到 GitHub 會讓您的專案變得非常臃腫,也會拖慢 clone 和 push 的速度。
可以重建
只要有 package.json
(購物清單) 和 package-lock.json
(詳細的型號說明書),任何人都可以透過 npm install
指令,在自己的電腦上重新建立一模一樣的 node_modules/
倉庫。
幸運的是,當您建立一個新的 Nuxt 專案時,它就已經很貼心地在 .gitignore
檔案中幫我們排除了這個資料夾,所以您通常不需要手動設定。
3. 視覺化理解
package.json
📋 購物清單
列出需要的套件名稱
輕量級,易於分享
需要加入版本控制
node_modules/
🏪 實體倉庫
包含所有實際的程式碼
體積龐大(數百 MB ~ GB)
不要加入版本控制
今日總結
今天我們認識了 node_modules/
,它是存放專案所有「外部依賴」的倉庫,由 npm 這類的 package manager 自動管理。
我們只需要關心 package.json
這張清單,而倉庫本身則讓它留在本地,不需要跟著專案一起旅行(版本控制)。
這是一個非常基礎但極其重要的 Node.js 生態系觀念。理解套件管理的運作方式,有助於您更好地管理專案的依賴關係。