npm และ Yarn คือเครื่องมือจัดการ Package สำหรับ JavaScript ใช้ติดตั้ง dependency, จัดการ script, ล็อกเวอร์ชัน และทำให้ทีมใช้ชุด package เดียวกันได้สม่ำเสมอ
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#fabd2f", "primaryTextColor": "#282828", "primaryBorderColor": "#b57614", "lineColor": "#7c6f64", "secondaryColor": "#83a598", "tertiaryColor": "#b8bb26", "background": "#fbf1c7", "mainBkg": "#ebdbb2", "fontFamily": "Tahoma, sans-serif"}}}%%
flowchart LR
subgraph Era1["ยุค Script Manual / Manual Era"]
A["ดาวน์โหลด library เอง
จัดไฟล์เอง"]
end
subgraph Era2["ยุค Package Manager / npm Era"]
B["npm init
สร้าง package.json"]
C["npm install
ติดตั้ง dependency"]
end
subgraph Era3["ยุค Reproducible Build / Lockfile Era"]
D["package-lock.json
ล็อกเวอร์ชัน"]
E["scripts + npx
รันงานมาตรฐาน"]
end
A --> B --> C --> D --> E
npm init -y สร้างไฟล์ package.jsonnpm install express ติดตั้ง Dependency ที่ใช้ตอน runtimenpm install --save-dev nodemon ติดตั้ง Dev Dependency ที่ใช้ระหว่างพัฒนาpackage.json เก็บ dependencies, devDependencies, scriptsnpm run start / npm run dev ใช้รัน Script ที่กำหนดไว้npx รันคำสั่งจาก Package โดยไม่ต้องติดตั้งแบบ globalpackage-lock.json ล็อก Version ของ dependency ทั้งหมด| ประเภท | ติดตั้งด้วย | ใช้เมื่อใด | ตัวอย่าง |
|---|---|---|---|
dependencies |
npm install express |
ใช้ตอนแอปรันจริง | express, dotenv |
devDependencies |
npm install -D nodemon |
ใช้ตอนพัฒนา/test/build | nodemon, eslint |
| global package | npm install -g |
ใช้เป็นคำสั่งทั้งเครื่อง | angular cli |
| npx | npx package |
รันชั่วคราว | create tools |
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#fabd2f", "primaryTextColor": "#282828", "primaryBorderColor": "#b57614", "lineColor": "#7c6f64", "secondaryColor": "#83a598", "tertiaryColor": "#b8bb26", "background": "#fbf1c7", "mainBkg": "#ebdbb2", "fontFamily": "Tahoma, sans-serif"}}}%%
flowchart TD
A["เริ่มโปรเจกต์
npm init -y"] --> B["ติดตั้ง package
npm install"]
B --> C["แก้ scripts
package.json"]
C --> D["รัน dev
npm run dev"]
D --> E["ล็อกเวอร์ชัน
package-lock.json"]
E --> F["ติดตั้งซ้ำได้
npm ci"]
{
"name": "node-api-course",
"version": "1.0.0",
"type": "module",
"scripts": {
"start": "node server.js",
"dev": "nodemon server.js"
},
"dependencies": {
"express": "^4.18.3"
},
"devDependencies": {
"nodemon": "^3.1.0"
}
}
# สร้าง package.json แบบใช้ค่าเริ่มต้น
npm init -y
# ติดตั้ง express เป็น runtime dependency
npm install express
# ติดตั้ง nodemon เป็น dev dependency
npm install --save-dev nodemon
# รัน script ที่กำหนดใน package.json
npm run dev
# ตัวอย่างการใช้งาน:
# แก้ไฟล์ server.js แล้ว nodemon จะ restart server ให้อัตโนมัติ
start และ devexpress และ nodemonpackage.json กับ package-lock.json