มาติดตั้ง Node.js และ NPM กัน ~
MacOS/Linux
เปิดโปรแกรม Terminal ในเครื่องตัวเองเพื่อเตรียมรันคำสั่งเลย
Copy
โค้ดนี้แล้วกด Enter
เพื่อติดตั้ง nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
การรันคำสั่งดังกล่าวจะเพิ่มบรรทัดดังกล่าวเข้าไปในไฟล์ profile ของ shell (
~/.bash_profile
,~/.zshrc
,~/.profile
, หรือ~/.bashrc
) — ถ้ารันคำสั่งข้างล่างไม่สำเร็จ ให้ลองเพิ่มบรรทัดข้างล่างไปในไฟล์ดังกล่าว
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
ปล. ให้เปลี่ยนคำสั่งนี้เป็น nvm เวอร์ชันปัจจุบันด้วย โดยสามารถตรวจสอบเวอร์ขัน NVM ได้ที่หน้า GitHub ของ nvm
เมื่อรันคำสั่งสำเร็จ จะขึ้นเป็นข้อความประมาณนี้
ถ้ารัน command สำเร็จแล้ว ให้รัน commnad นี้เพื่อติดตั้ง Node.js และ NPM เวอร์ชัน LTS (Long Term Support) เลย
LTS (Long Term Support) เป็นเวอร์ชันของ Node.js ที่ถูกปล่อยมาสักพักนึงแล้ว เลยค่อนข้างมั่นใจได้ว่าจะเสถียรมากกว่าถ้าเทียบกับเวอร์ชันล่าสุด
nvm install --lts
nvm use --lts
หากรันครบทุกคำสั่งดังกล่าวแล้ว Node.js จะถูกติดตั้งในเครื่องสำเร็จแล้ว
node -v # ทดสอบ Node.js
npm -v # ทดสอบ npm
Windows
เนื่องจาก Command Line ของ Windows จะรับชุดคำสั่งคนละแบบกับ MacOS/Linux วิธีติดตั้ง Node.js/NPM ใน Windows เลยจะแตกต่างจากชาวบ้านหน่อย โดยสามารถติดตั้ง Node.js/NPM ใน Windows ได้ 2 แบบ :
- ใช้ Command Prompt ของ Windows
- [วิธีหาทำ] ใช้ WSL — Command Line แบบ Unix (เหมือน MacOS/Linux)
ใช้ Command Prompt ของ Windows
ให้โหลด https://github.com/coreybutler/nvm-windows เพื่อรัน nvm ใน Command Prompt ของ Windows ได้ (อาจจะมีบางคำสั่งที่ไม่สามารถรันในนี้ได้ แต่ถ้าไม่ได้ใช้อะไร advanced ก็โหลดแบบนี้ไปก่อนได้)
[วิธีหาทำ] ใช้ WSL — Command Line แบบ Unix (เหมือน MacOS/Linux)
WSL (Windows Subsystem for Linux) เป็นฟีเจอร์ของ Windows ที่จะทำให้คอมพิวเตอร์ Windows สามารถรันคำสั่งเหมือน Linux ได้ ซึ่งจะทำให้การทำงานใน Command Line ในเครื่อง Windows ง่ายขึ้นเยอะมาก
วิธีติดตั้ง WSL2 ใน Windows
Node.js
“Node.js is an open-source and cross-platform JavaScript runtime environment.” — Nodejs.dev Docs
Node.js เป็น runtime environment ของภาษา JavaScript ที่ open-source และ cross-platform
— แปลโดยธีเอง
อาจจะฟังดูงง ๆ งั้นเรามาอธิบายกันทีละคำแล้วกัน
Node.js เป็น open-source
Node.js เป็นโปรแกรมที่ open-source — หมายความว่า source code ของ Node.js นั้นถูกเปิดให้ดูแบบ public ได้ และถูกพัฒนาต่อโดย community ที่ใช้ Node.js ได้ โดยใครก็ตามก็สามารถส่ง contribution เพื่อช่วยพัฒนา Node.js ให้ดีขึ้น หรือแจ้งปัญหาเพื่อนำไปพัฒนาโปรเจกต์ต่อได้
Node.js เป็น cross-platform
Node.js สามารถถูกรันได้ทุกที่ ทุก platform ไม่ว่าจะเป็น Windows, MacOS หรือ Linux
Node.js เป็น runtime environment ของภาษา JavaScript
หน้าที่ของ runtime environment คือการ execute (รันโค้ด) โปรแกรมภาษา JavaScript ให้ออกมาเป็นผลลัพธ์ โดยเราสามารถใช้ Node.js ในการเขียน server-side applications ต่าง ๆ รวมถึงการทำ Back-end ของเว็บไซต์ด้วย
พูดง่าย ๆ คือเราเอาภาษา JavaScript ที่ปกติจะสามารถรันได้แค่ภายใน web browser มารันในฝั่ง server-side (back-end) นั่นเอง
NPM
NPM (Node Package Manager) เป็นเครื่องมือที่ติดตั้งมาพร้อมกับ Node.js เพื่อช่วยในการติดตั้งโปรแกรม Node.js อื่น ๆ (เช่น Library อย่าง Express, React)
โอเค รู้จักทั้ง Node.js และ NPM กันแล้ว ได้เวลาติดตั้งโปรแกรมกัน !
NVM คืออะไร ? ทำไมถึงต้องใช้ NVM ?
NVM (Node Version Manager) เป็นเครื่องมือที่ช่วยในการจัดการเวอร์ชันของ Node.js โดยเราจะสามารถดาวน์โหลดและติดตั้ง Node.js เวอร์ชันไหนก็ได้ด้วยคำสั่งบรรทัดเดียวใน Command Line
ทำไมถึงต้องใช้ NVM ? ทำไมไม่โหลด Node.js จากเว็บหลักเลยล่ะ ?
Node.js มีการอัปเดตอยู่เสมอ และนาน ๆ ทีจะมีการอัปเดต Major Release อยู่เรื่อย ๆ (ถ้าสงสัยว่าตัวเลขเวอร์ชันมาจากไหน สามารถอ่านต่อเกี่ยวกับ Software Versioning ได้) ซึ่งอาจจะเกิด Breaking Change ที่ทำให้เราไม่สามารถรันโปรเจกต์เก่า ๆ ได้
เพราะฉะนั้น ถ้าเราทำโปรเจกต์ใน Node.js ไปนาน ๆ เราจะมีโปรเจกต์ที่เวอร์ชัน Node.js ที่ใช้รันไม่ตรงกันได้ ดังนั้นการที่เราสามารถติดตั้ง หรือเปลี่ยนเวอร์ชัน Node.js ได้เร็ว ๆ จะเป็นอะไรที่สะดวกมาก
เสร็จแล้ว ~ เรียนอะไรต่อดี
เริ่มจากตรงนี้เลย !
Learn JavaScript
Introduction to Node.js
NVM
Learn TypeScript
ลองมาเขียน TypeScript กัน ~ (TypeScript เป็นภาษาโปรแกรมมิ่งที่คำสั่งคล้ายกับ JavaScript แต่มีการเพิ่มระบบ typing และฟีเจอร์เจ๋ง ๆ อย่างอื่นมา)