วันนี้มีนักเรียนที่มาอบรมกับโค้ชพล ถามขึ้นมาเกี่ยวกับการติดตั้ง Module ของ Node JS ว่าทำไมเราต้องใส่ –save ด้วย เช่นเวลาติดตั้ง Express JS ในตอนอบรมกัน เราจะสั่งแบบนี้
npm install express --save
แต่ถ้าหลายๆ คน เคยค้นหาใน Internet จะเจอแต่คำสั่งติดตั้ง Module ของ Node JS โล้นๆ แบบนี้
npm install express
ซึ่งโค้ชพลจะมาเสริมให้ครับ ว่าการสั่งแบบมี–save จะดีกว่ายังไงบ้าง
3 ข้อดี จากการติดตั้ง Node Module แบบมี –save
1. อัพเดตไฟล์ package.json ให้อัตโนมัติ
ใครที่มาอบรมกับโค้ชพล จะมีช่วงที่โค้ชอธิบายว่า “ทำไม Node JS มันยิ่งใหญ่กว่าเขียน Javascript ทำ server มากมายนัก?”
ซึ่งกลไกสำคัญหนึ่งที่มือใหม่ หรือคนที่เพิ่งมาใช้ Node JS จะมองข้าม คือเรื่องของ Dependencies ครับ
คำสั่ง –save ที่เสริมเข้าไป จะทำให้ระบบ NPM ใส่ข้อมูลของ Module ที่เราสั่งติดตั้งเข้าไปในไฟล์ package.json ซึ่งจะมีประโยชน์มากๆ ในการใช้ความเจ๋งอื่นๆ ของ Node JS
ด้านล่างนี่คือไฟล์ package.json ก่อนสั่ง npm install express –save
{ "name": "Avenger Assemble", "version": "0.0.0", "description": "Keeps track super heroes team", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Teerasej Jiraphatchandej <[email protected]>", "license": "BSD-2-Clause" }
ส่วนนี่คือไฟล์หลังจากสั่งติดตั้ง Express JS แล้ว
{ "name": "Avenger Assemble", "version": "0.0.0", "description": "Keeps track super heroes team", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Teerasej Jiraphatchandej <[email protected]>", "license": "BSD-2-Clause", "dependencies": { "express": "^4.13.3" } }
จะเห็นว่ามีการเพิ่มส่วนที่ชื่อ Dependencies เข้ามาใน package.json นั่นแล
2. ง่ายขึ้นเมื่อถึงเวลาปล่อยแอพเข้าสู่ Production
ในการทำเว็บแอพ หรือแอพในระบบอื่นๆ เราจะมีการเรียนช่วงการพัฒนา (บั้กตรึม) ว่า Development และช่วงปล่อยให้ประชาชีได้ใช้จริงว่า Production (อัพขึ้น server เปิดให้ใช้งานจริงประมาณนี้)
ซึ่งในการทำเว็บแอพด้วย Node JS เวลาเราเอาขึ้นระบบในช่วง Production ส่วนใหญ๋เราไม่อัพโฟลเดอร์ node_module ขึ้นไปตรงๆ กัน
โดยระบบปลายทางใน Production จะมีการอ่านส่วนของ Dependencies ในไฟล์ package.json และทำการดาวน์โหลดมาจัดการเองแทนเรา ซึ่งก็คือว่าสะดวกสบายไปอีกหนึ่ง
3. เป็นการคิดถึงคนอื่น: ขนาดโปรเจคใน Git เล็กกว่า เพื่อนสั่งติดตั้ง Module ได้สะดวกกว่า
ในยุคที่เราไม่ได้เขียนโปรแกรมอยู่คนเดียว (เพราะ Internet ทำให้เรารู้ว่ามีสหายร่วมอาชีพอีกหลายแสนคน)
ทำให้แนวคิดการจัดการโปรเจค และไฟล์ต่างๆ ไม่เหมือนเมื่อก่อนอีกต่อไป เหมือนเมื่อก่อนอยู่หอคนเดียว กูจะรกเท่าไหร่ก็ได้ แต่ตอนนี้เหมือนมีรูมเมทมาอยู่ด้วย จะแชร์ตู้เย็น แชร์คอมกันใช้ก็ต้องมีรูปแบบการแบ่งปันที่มีระบบ ไม่งั้นตีกันตาย
อย่างที่บอกไปข้อที่ 1 ว่าการใช้คำสั่ง –save จะเป็นการบอกใช้ NPM ใส่ข้อมูลเข้าไปในส่วน Dependencies ของไฟล์ package.json ในโปรเจคเราด้วย เหมือนการจดโน๊ตเข้าไปว่าโปรเจคเราใช้ Module อะไร เวอร์ชั่นอะไรบ้าง
ทำให้เราไม่จำเป็นต้องส่ง ไฟล์อันเทอะทะของ Module ในโฟลเดอร์ node_module ในโปรเจคเราเข้า Git ครับ
เพราะการที่เรามีข้อมูลส่วนของ Dependencies ในไฟล์ package.json ทำให้คนที่ได้โปรเจคของเราไป (แต่ไม่ได้โฟลเดอร์ node_module ไปด้วยสามารถติดตั้ง module ที่จำเป็นต่อการทำงานของเราได้ทั้งหมด เพียงแค่ใช้คำสั่ง
npm install
จากในโฟลเดอร์โปรเจคของเราเท่านั้นเอง
สรุป
หวังว่าที่โค้ชพลคุยกับคุณในเรื่องนี้ จะทำให้สามารถใช้ตัดสินใจในการทำโปรเจคแอพใดๆ ได้ง่าย และมีความสุขมากขึ้นนะ
เหมาะสำหรับคนทำเว็บ, เริ่มต้น JavaScript ES6 และ Angular เข้าใจง่าย, ใช้ได้จริง สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373 โปรหน้าฝน! เรียนรอบสด รับคอร์สออนไลน์มูลค่ากว่า 5800 บาทฟรี!เปิดอบรมสร้าง Cross Platform Mobile Application ด้วย Ionic Framework