34
Re:Nuxt 100 天練習曲
Day 34

專案的工具倉庫 (node_modules/)

Day 34·node_modules·套件管理

1. 什麼是 `node_modules/`?

您可以把 package.json 想像成是您專案的 IKEA 購物清單。它只列出了您需要購買的「傢俱」名稱(例如 nuxt, pinia)。

node_modules/ 就是 IKEA 的大倉庫

採購流程

當您在終端機執行 npm install 時,npm(您的採購員)就會根據 package.json 這張購物清單,把所有傢俱(以及組裝這些傢俱所需要的所有螺絲、零件、工具)全部從倉庫裡拿出來,放到您的專案中。

這個倉庫非常巨大,但您通常只需要使用組裝好的「傢俱」(也就是函式庫的功能),而不需要直接去關心倉庫裡的細節。

2. 黃金定律:不要把它放進 Git

node_modules/ 有一個非常重要的黃金定律:

永遠不要把 `node_modules/` 加到 Git 版本控制中。

原因有二:

1

體積龐大

這個資料夾動輒數百 MB 甚至數 GB,把它上傳到 GitHub 會讓您的專案變得非常臃腫,也會拖慢 clone 和 push 的速度。

2

可以重建

只要有 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 生態系觀念。理解套件管理的運作方式,有助於您更好地管理專案的依賴關係。