From b55e3ec228562d5760f4f24c914b8ed50814db1b Mon Sep 17 00:00:00 2001 From: Tim_note Date: Sat, 8 Feb 2025 00:53:33 +0800 Subject: [PATCH] a --- 進階_React框架/docs/Nodejs.md | 54 ++++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/進階_React框架/docs/Nodejs.md b/進階_React框架/docs/Nodejs.md index 4be659d..1a1b4e5 100644 --- a/進階_React框架/docs/Nodejs.md +++ b/進階_React框架/docs/Nodejs.md @@ -1,17 +1,45 @@ -# Node.js與npm -Nodejs:一個不需要開啟網頁就能夠執行javascript的環境 -npm(node package manager): 一個套件管理工具,類似於pip、nuget +# 🌟 Node.js 與 npm 簡介 + +## 📌 Node.js 是什麼? +Node.js 是一個 **不需要開啟網頁就能執行 JavaScript** 的環境,讓 JavaScript 可以在 **伺服器端運行**,而不只是瀏覽器內使用。 + +## 📌 npm(Node Package Manager)是什麼? +npm 是 **Node.js 內建的套件管理工具**,類似於 `pip`(Python)或 `NuGet`(C#)。 +它的主要用途是: +- **管理 JavaScript 套件**(安裝、更新、移除) +- **處理前端與後端的開發依賴** +- **自動化開發工作(如打包、測試、部署)** + +--- + +## 🔧 為什麼使用 React 仍然需要 npm? +npm 本身是 **JavaScript 寫成的工具**,**需要 Node.js 在背景執行** 來處理指令。 +雖然 **React 只負責前端開發,不會用到 Node.js**,但它仍然需要 npm 來安裝開發工具與相關套件。 + +**例如,開發 React 項目時,你可能會用到以下工具:** + +### 📦 **常用 npm 套件(React 開發必備)** +| **類別** | **套件名稱** | **用途** | +|----------|------------|---------| +| **React 本體** | `react`, `react-dom` | React 組件核心 | +| **開發工具** | `vite`, `webpack` | 開發環境、建置專案 | +| **TypeScript 支援** | `typescript` | 強型別 JavaScript | +| **狀態管理** | `redux`, `zustand` | 管理全域狀態 | +| **UI 框架** | `tailwindcss`, `material-ui` | 美化前端 UI | +| **前端路由** | `react-router-dom` | 處理單頁應用(SPA)導航 | +| **API 請求** | `axios`, `fetch` | 透過 HTTP 取得數據 | + +--- + +## 🚀 如何安裝 Node.js 與 npm? +📌 **1. 下載與安裝 Node.js(自動附帶 npm)** +🔗 [Node.js 官方網站](https://nodejs.org/)(建議下載 LTS 版本) + +📌 **2. 檢查 Node.js 與 npm 是否安裝成功** +```bash +node -v # 檢查 Node.js 版本 +npm -v # 檢查 npm 版本 -npm這個工具本身是由javascript寫出來的,所以需要node.js在背景持續執行 -使用React前端框架照理說不需用到Node.js,但是需要npm去安裝一些前端框架會用到的工具 -常用套件工具: -React 本體(react、react-dom) -開發工具(Vite / Webpack) -TypeScript 支援(若使用 TypeScript) -狀態管理(Redux, Zustand) -UI 框架(Tailwind CSS, Material UI) -前端路由(React Router) -API 請求(axios, fetch) # Vscode編譯器 vscode本身沒有支援npm,需去下載nodejs,https://nodejs.org/zh-tw