目次

1. แนะนำเบื้องต้น

เหตุผลที่ควรใช้ npm บน Ubuntu

หนึ่งในเครื่องมือสำคัญสำหรับการพัฒนา Frontend และ Backend คือ “npm (Node Package Manager)” ซึ่งเป็นเครื่องมือจัดการแพ็กเกจของ Node.js ที่ได้รับความนิยมสูง ช่วยให้สามารถติดตั้งและจัดการไลบรารี JavaScript และเครื่องมือต่าง ๆ ได้อย่างง่ายดาย

การใช้ npm บน Ubuntu จะช่วยให้คุณได้ประโยชน์จากความคล่องตัวของ Linux และความยืดหยุ่นในการจัดการแพ็กเกจ ส่งผลให้ประสิทธิภาพการพัฒนาดีขึ้นอย่างมาก Ubuntu เป็นดิสทริบิวชันที่ได้รับความนิยมในหมู่นักพัฒนา ทั้งสำหรับเซิร์ฟเวอร์และเครื่องส่วนตัว

โดยเฉพาะเมื่อต้องใช้งาน Framework ที่สร้างบน Node.js เช่น Vue.js, React, Next.js การจัดการแพ็กเกจด้วย npm ถือเป็นมาตรฐาน การตั้งค่าเหล่านี้บน Ubuntu จะช่วยลดปัญหาเมื่อเทียบกับ Windows หรือ macOS และทำให้สภาพแวดล้อมการพัฒนาเสถียรขึ้น

วัตถุประสงค์ของบทความนี้

บทความนี้จะแนะนำขั้นตอนการติดตั้งและใช้งาน npm บน Ubuntu ตั้งแต่เริ่มต้นจนถึงการใช้คำสั่งพื้นฐาน เหมาะสำหรับ

  • นักพัฒนาที่เริ่มต้นใช้ Ubuntu
  • ผู้ที่มีปัญหาเรื่องการตั้งค่า Node.js หรือ npm
  • ผู้ที่ต้องการเรียนรู้การใช้ npm อย่างเป็นระบบ

เราจะนำเสนอหลายวิธีในการติดตั้ง พร้อมเปรียบเทียบข้อดี-ข้อเสียของแต่ละแบบ รวมถึงแนวทางแก้ไขปัญหาที่พบบ่อย และคำสั่งที่เป็นประโยชน์ เพื่อให้ผู้อ่านสามารถใช้งาน npm บน Ubuntu ได้อย่างราบรื่น

年収訴求

2. วิธีติดตั้ง Node.js และ npm บน Ubuntu

ก่อนจะใช้ npm บน Ubuntu จำเป็นต้องติดตั้ง Node.js ก่อน เพราะ npm มาพร้อมกับ Node.js เมื่อคุณติดตั้ง Node.js แล้วก็จะได้ npm ด้วย

ที่นี่เราจะนำเสนอ 3 วิธีหลักในการติดตั้ง Node.js และ npm บน Ubuntu ซึ่งแต่ละวิธีก็เหมาะกับความต้องการและสไตล์การพัฒนาต่างกัน

วิธีที่ 1: ใช้ Official Repository ของ Ubuntu

ขั้นตอน

ใน Repository มาตรฐานของ Ubuntu มี Node.js ให้ติดตั้ง วิธีนี้ง่ายที่สุด เหมาะกับมือใหม่

sudo apt update
sudo apt install nodejs npm

หลังติดตั้ง ตรวจสอบเวอร์ชันด้วยคำสั่ง:

node -v
npm -v

ข้อดี

  • คำสั่งเข้าใจง่าย ไม่ซับซ้อน
  • เวอร์ชันที่ติดตั้งมีความเสถียรสูง

ข้อเสีย

  • เวอร์ชันของ Node.js/npm ที่ได้มักจะเก่า อาจใช้งานฟีเจอร์ใหม่ไม่ได้

วิธีที่ 2: ใช้ NodeSource PPA

การใช้ Repository “NodeSource” ซึ่งใกล้เคียงกับทางการ ช่วยให้ติดตั้ง Node.js และ npm เวอร์ชันใหม่ ๆ ได้ง่ายขึ้น

ตัวอย่างขั้นตอน (ติดตั้ง Node.js 18.x)

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

npm จะถูกติดตั้งพร้อมกับ Node.js โดยอัตโนมัติ

ข้อดี

  • ได้เวอร์ชันใหม่ที่ยังคงมีเสถียรภาพ
  • ติดตั้งง่ายและทำงานร่วมกับ Ubuntu ได้ดี

ข้อเสีย

  • ต้องระวังการจัดการ dependency หากใช้ร่วมกับ PPA อื่น

วิธีที่ 3: ใช้ nvm (Node Version Manager)

หากต้องการสลับเวอร์ชัน Node.js หลายเวอร์ชัน nvm จะสะดวกและยืดหยุ่นที่สุด

ขั้นตอน

ติดตั้ง nvm ก่อน:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

จากนั้น reload shell แล้วติดตั้ง Node.js ผ่าน nvm:

source ~/.bashrc  # หรือ ~/.zshrc
nvm install 18
nvm use 18

npm จะติดตั้งพร้อม Node.js โดยอัตโนมัติ

ข้อดี

  • สลับเวอร์ชัน Node.js ได้อิสระ
  • ตั้งค่าเวอร์ชันแยกตามโปรเจกต์
  • ปลอดภัย ไม่กระทบกับระบบหลัก

ข้อเสีย

  • ขั้นตอนติดตั้งซับซ้อนกว่าวิธีอื่นเล็กน้อย
  • ต้องแก้ไขไฟล์ตั้งค่าของ shell

ควรเลือกวิธีไหนดี?

วิธีความยากความใหม่ของเวอร์ชันความยืดหยุ่นแนะนำสำหรับ
Official Repository★☆☆△ (เก่า)×มือใหม่ ผู้ทดลองใช้งาน
NodeSource★★☆○ (ใหม่กว่า)นักพัฒนาทั่วไป
nvm★★★◎ (เลือกเวอร์ชันได้)ผู้มีหลายโปรเจกต์/ผู้มีประสบการณ์

ถ้าจะพัฒนาในระยะยาว แนะนำให้ใช้ nvm ส่วนถ้าเน้นความง่าย NodeSource ก็เป็นตัวเลือกที่ดี

3. การใช้งาน npm พื้นฐาน

หลังจากติดตั้ง Node.js กับ npm แล้ว ขั้นตอนต่อไปคือการใช้งาน npm สำหรับจัดการแพ็กเกจ JavaScript

เราจะอธิบายคำสั่งพื้นฐานที่ใช้บ่อย

ติดตั้งแพ็กเกจ

Local Install

ถ้าต้องการใช้แพ็กเกจแค่ในโปรเจกต์ปัจจุบัน ให้ติดตั้งแบบ Local แพ็กเกจจะถูกติดตั้งใน node_modules และถูกบันทึกไว้ใน package.json

npm install ชื่อแพ็กเกจ

ตัวอย่าง: ติดตั้ง axios

npm install axios

เฉพาะสคริปต์ในโปรเจกต์นั้นเท่านั้นที่จะใช้แพ็กเกจนี้ได้

Global Install

ถ้าจะใช้แพ็กเกจหรือ CLI ทั่วทั้งระบบ ให้ติดตั้งแบบ Global

npm install -g ชื่อแพ็กเกจ

ตัวอย่าง: ติดตั้ง http-server แบบ global

sudo npm install -g http-server

บน Ubuntu บางครั้งต้องใช้ sudo กับ -g ด้วย

ถอนการติดตั้งแพ็กเกจ

ลบแพ็กเกจที่ไม่ต้องการแล้วด้วยคำสั่งนี้

ลบแพ็กเกจแบบ Local

npm uninstall ชื่อแพ็กเกจ

ลบแพ็กเกจแบบ Global

sudo npm uninstall -g ชื่อแพ็กเกจ

อัปเดตแพ็กเกจ

ถ้าต้องการอัปเดตแพ็กเกจให้เป็นเวอร์ชันล่าสุด

อัปเดตแพ็กเกจเดี่ยว

npm update ชื่อแพ็กเกจ

อัปเดตแพ็กเกจทั้งหมด

npm update

แต่จะอัปเดตภายในขอบเขตเวอร์ชันที่ระบุใน package.json

ติดตั้งแพ็กเกจสำหรับพัฒนา (–save-dev)

ถ้าเป็นเครื่องมือสำหรับทดสอบหรือ build ให้ใช้ --save-dev

npm install --save-dev ชื่อแพ็กเกจ

ตัวอย่าง: ติดตั้ง jest เป็น dev dependency

npm install --save-dev jest

จะถูกบันทึกใน devDependencies ของ package.json

ดูรายการแพ็กเกจที่ติดตั้ง

ดูแพ็กเกจในโปรเจกต์ (Local)

npm list

ดูแพ็กเกจทั้งหมดแบบ Global

npm list -g --depth=0

ใช้ --depth=0 เพื่อแสดงเฉพาะแพ็กเกจระดับบนสุด อ่านง่ายขึ้น

จัดการ dependency ด้วย package.json

หัวใจของ npm คือไฟล์ package.json ซึ่งบันทึกข้อมูลแพ็กเกจ เวอร์ชัน และ script ต่าง ๆ

สร้าง package.json ได้ด้วยคำสั่งนี้

npm init

หรือถ้าต้องการข้ามขั้นตอนตอบคำถาม ใช้

npm init -y

เพื่อสร้างแบบอัตโนมัติ

4. ปัญหาที่พบบ่อยและแนวทางแก้ไข

เมื่อใช้ npm บน Ubuntu อาจเจอข้อผิดพลาดต่าง ๆ โดยเฉพาะมือใหม่ บทนี้จะแนะนำวิธีแก้ไขปัญหาที่เจอบ่อย

เจอ Permission Error

อาการ

EACCES: permission denied

เมื่อลองติดตั้งแพ็กเกจแบบ global แล้วเจอ error นี้

สาเหตุ

ไม่มีสิทธิ์เขียนไฟล์ใน directory ที่ npm จะติดตั้งแพ็กเกจ เช่น /usr/lib/node_modules ต้องใช้ sudo ด้วยเหตุผลด้านความปลอดภัย

วิธีแก้

  • เพิ่ม sudo ตอนรันคำสั่ง:
sudo npm install -g ชื่อแพ็กเกจ
  • หรือเปลี่ยน global path ไปที่ home directory เพื่อใช้ npm แบบไม่ต้อง sudo
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'

แล้วเพิ่ม PATH ลงใน ~/.bashrc หรือ ~/.profile

export PATH="$HOME/.npm-global/bin:$PATH"

รีสตาร์ท terminal หรือรัน

source ~/.bashrc

npm ใช้งานไม่ได้ หรือ PATH ไม่ถูกต้อง

อาการ

command not found: npm

แม้จะติดตั้ง npm แล้วแต่ใช้คำสั่งไม่ได้

สาเหตุ

  • Node หรือ npm ติดตั้งไม่สมบูรณ์
  • PATH ไม่ถูกตั้งค่า

วิธีแก้

ตรวจสอบ PATH ก่อน

which npm

ถ้าไม่มีอะไรแสดง ต้องติดตั้งใหม่หรือตรวจสอบไฟล์ตั้งค่า หากใช้ nvm ให้เช็คว่ามีโค้ดนี้ใน .bashrc หรือ .zshrc หรือไม่

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

ติดตั้งบางแพ็กเกจไม่ได้ หรือ version conflict

อาการ

  • ติดตั้งแพ็กเกจ A แล้วมี error เรื่อง dependency
  • มี warning เยอะตอน npm install

สาเหตุ

มี dependency conflict หรือใช้แพ็กเกจเก่าที่ถูก deprecated

วิธีแก้

  • ติดตั้งเวอร์ชันล่าสุด:
npm install ชื่อแพ็กเกจ@latest
  • เช็ค dependency ของแพ็กเกจ:
npm ls ชื่อแพ็กเกจ
  • บังคับติดตั้ง (ไม่แนะนำ):
npm install --legacy-peer-deps
  • ลบ node_modules กับ package-lock.json แล้วติดตั้งใหม่:
rm -rf node_modules package-lock.json
npm install

เทคนิค debug อื่น ๆ ที่เป็นประโยชน์

  • npm doctor: ตรวจสอบ environment อัตโนมัติ
npm doctor
  • npm audit: เช็คและแก้ไขปัญหา security
npm audit
npm audit fix

ข้อผิดพลาด npm บน Ubuntu มักจะแสดงข้อความอังกฤษ ให้ลองอ่าน error อย่างใจเย็นและหาทางแก้ตามข้อความนั้น

5. คำถามที่พบบ่อย (FAQ)

รวมคำถามที่มือใหม่ใช้งาน npm บน Ubuntu มักค้นหา พร้อมคำตอบกระชับเพื่อช่วยแก้ปัญหาและปรับปรุงสภาพแวดล้อม

Q1. จะอัปเดต npm เป็นเวอร์ชันล่าสุดบน Ubuntu ได้อย่างไร?

A1.

ใช้คำสั่งนี้เพื่ออัปเดต npm

sudo npm install -g npm@latest

ถ้าใช้ nvm ไม่ต้องใช้ sudo

npm install -g npm@latest

ตรวจสอบเวอร์ชัน:

npm -v

Q2. ความต่างของ Local install กับ Global install คืออะไร?

A2.

  • Local Install: ติดตั้งในโปรเจกต์เท่านั้น ใช้ใน node_modules และแชร์กับทีมได้ (บันทึกใน package.json)
  • Global Install: ใช้งานได้ทั้งระบบ เช่น CLI tool มักอยู่ที่ /usr/lib/node_modules และอาจต้องใช้ sudo

Q3. ข้อดีของการใช้ nvm คืออะไร?

A3.

nvm (Node Version Manager) ช่วยให้สลับเวอร์ชัน Node.js ได้อิสระ เหมาะกับการทำงานหลายโปรเจกต์ ปลอดภัยเพราะไม่กระทบระบบหลัก และ npm ก็จะเปลี่ยนตามเวอร์ชัน Node.js ที่ใช้งาน

  • เหมาะกับการทำหลายโปรเจกต์ที่ใช้ Node.js ต่างเวอร์ชัน
  • ปลอดภัย ไม่เปลี่ยนแปลงทั้งระบบ
  • npm จะถูกจัดการอัตโนมัติตาม Node.js ที่ใช้

Q4. ถ้า dependency npm เสีย ควรทำอย่างไร?

A4.

ลบ node_modules และ package-lock.json แล้วติดตั้งใหม่

rm -rf node_modules package-lock.json
npm install

ถ้ายังไม่หาย ให้ลอง npm ci (เหมาะกับ CI/CD)

Q5. ผลลัพธ์ npm ขึ้น WARN หรือ audit ควรทำยังไง?

A5.

WARN คือ warning ไม่ใช่ error แต่ควรตรวจสอบ dependency หรือการใช้ฟีเจอร์ที่ถูก deprecate

ถ้าเกี่ยวกับ security ใช้คำสั่งนี้ได้

npm audit fix

ควรตรวจสอบการเปลี่ยนแปลงก่อนเสมอ และใช้ git ช่วย backup ไว้ก่อน

Q6. npm บน Ubuntu ใช้สร้างอะไรได้บ้าง?

A6.

npm คือจุดเริ่มของโลก JavaScript บน Ubuntu สามารถสร้าง:

  • สภาพแวดล้อม Frontend (React, Vue, Svelte ฯลฯ)
  • Static site generator (Next.js, Nuxt ฯลฯ)
  • Backend (Express, NestJS ฯลฯ)
  • CLI tools
  • Test tools (Jest, Mocha ฯลฯ)

npm บน Ubuntu ช่วยให้คุณใช้พลัง Open Source ได้อย่างมีประสิทธิภาพ

6. สรุป: ใช้งาน npm บน Ubuntu ให้คล่อง

บทความนี้แนะนำตั้งแต่การติดตั้งจนถึงใช้งาน npm บน Ubuntu พร้อมเทคนิคและคำสั่งที่จำเป็น สรุปประเด็นสำคัญอีกครั้ง

ประเด็นสำคัญ

  • npm คืออะไร: เครื่องมือจัดการแพ็กเกจที่ช่วยให้พัฒนาเร็วขึ้น
  • วิธีติดตั้ง: มี 3 ทางเลือก เลือกให้เหมาะกับความต้องการ
  • การใช้งานพื้นฐาน: ติดตั้ง ลบ อัปเดต จัดการ dependency ง่าย
  • การแก้ปัญหา: มีแนวทางแก้ทั้งเรื่อง permission, เวอร์ชัน และ dependency
  • FAQ: รวมคำถามที่พบบ่อยในงานจริง

แนะนำสำหรับมือใหม่

Ubuntu กับ npm เป็นคู่ที่เหมาะกับงาน Web ทันสมัย แม้จะเจอปัญหา แต่การแก้ปัญหาทีละข้อจะช่วยให้คุณเก่งขึ้น

สิ่งสำคัญที่สุดคือ “ทดลองใช้งานจริง” ลองรันคำสั่งและดูผลลัพธ์เพื่อเข้าใจ npm ให้ลึกซึ้งขึ้น

นี่คือคู่มือการใช้งาน npm บน Ubuntu หวังว่าจะช่วยให้สร้างสภาพแวดล้อมการพัฒนาได้ตามต้องการ

สำหรับเทคนิค Linux และ Web Development อื่น ๆ ติดตามหรือแชร์บทความนี้ไว้ได้เลย!