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

npm run lint คืออะไร และทำไมหลายทีมถึงใช้กันเป็นประจำ
หลายคนคุ้นเคยกับคำสั่ง npm run lint เพราะเห็นในคู่มือโปรเจกต์ เห็นคนในทีมใช้ หรือถูกกำหนดไว้ในขั้นตอนก่อน commit และก่อน merge โค้ด แต่สำหรับมือใหม่ คำสั่งนี้อาจยังดูเป็นเรื่องเทคนิคที่ทำตามกันไปโดยไม่ได้เข้าใจหน้าที่จริง
ในความเป็นจริง npm run lint เป็นหนึ่งในคำสั่งที่ช่วยยกระดับคุณภาพโค้ดได้มากกว่าที่คิด เพราะมันไม่ได้มีไว้เพื่อรันโปรแกรม ไม่ได้มีไว้ build และโดยมากก็ไม่ได้ใช้สำหรับทดสอบ logic แบบเดียวกับการเขียน test แต่มีหน้าที่สำคัญคือช่วยตรวจสอบว่าโค้ดของเรายังเป็นไปตามกติกาและมาตรฐานของโปรเจกต์หรือไม่
npm run lint ทำหน้าที่อะไร
คำสั่ง npm run lint คือการสั่งให้ npm ไปเรียก script ชื่อ lint ที่ถูกกำหนดไว้ในไฟล์ package.json ของโปรเจกต์
ตัวอย่างเช่น
"scripts": {
"lint": "eslint src"
}
เมื่อรันคำสั่ง npm run lint ระบบจะไปเรียก eslint ให้ตรวจโค้ดในโฟลเดอร์ src ทันที
อย่างไรก็ตาม ความหมายของคำสั่งนี้ไม่ได้ตายตัวเสมอไป เพราะแต่ละโปรเจกต์สามารถตั้งค่า script ต่างกันได้ บางโปรเจกต์ใช้ ESLint บางโปรเจกต์ใช้ Biome บางโปรเจกต์ใช้ Stylelint และบางแห่งอาจใช้หลายเครื่องมือร่วมกัน
lint ตรวจอะไรในโค้ดบ้าง
หน้าที่หลักของ lint คือการตรวจสอบคุณภาพและความสม่ำเสมอของโค้ด โดยมักช่วยจับประเด็นที่พบบ่อย เช่น
- โค้ดเขียนไม่เป็นระเบียบ
- ลืม import แต่มีการเรียกใช้งาน
- ประกาศตัวแปรไว้แต่ไม่ได้ใช้
- ใช้ syntax ที่ทีมไม่อนุญาต
- รูปแบบการเขียนไม่สม่ำเสมอ
ตัวอย่างที่พบได้บ่อยใน JavaScript คือการประกาศตัวแปรแล้วไม่ได้ใช้งานต่อ
const name = "Dev"
ถ้าตัวแปร name ไม่ถูกนำไปใช้ lint อาจแจ้งเตือนทันที เพื่อให้แก้ไขก่อน push ขึ้น repository ซึ่งช่วยลดปัญหาเล็กๆ ที่อาจสะสมจนทำให้โค้ดอ่านยากหรือดูไม่เรียบร้อย
ประโยชน์ของ npm run lint
การใช้ lint อย่างสม่ำเสมอมีข้อดีหลายด้าน ทั้งในมุมของคุณภาพโค้ดและการทำงานร่วมกันในทีม
- ช่วยลด bug ตั้งแต่ก่อนรันโปรแกรมจริง
- ช่วยให้โค้ดอ่านง่ายขึ้น
- ทำให้ทุกคนในทีมเขียนโค้ดไปในแนวทางเดียวกัน
- ลดการ review ซ้ำๆ ในเรื่อง style และรูปแบบ
- ช่วยจับความผิดพลาดเล็กๆ ที่อาจมองข้ามได้ง่าย
แม้ lint จะไม่ได้แทนการทดสอบระบบทั้งหมด แต่ก็ช่วยกรองปัญหาพื้นฐานได้ตั้งแต่ต้นทาง ทำให้กระบวนการพัฒนาไหลลื่นขึ้นมาก
lint ไม่ใช่ build และไม่ใช่ test
จุดที่หลายคนมักสับสนคือคิดว่าคำสั่งนี้เกี่ยวกับการรันโปรแกรมหรือทดสอบระบบโดยตรง แต่จริงๆ แล้ว lint มีบทบาทเฉพาะของมันเอง
- ไม่ได้ใช้เพื่อรันแอปพลิเคชัน
- ไม่ได้ใช้เพื่อ build โปรเจกต์
- ไม่ได้ใช้ทดสอบ logic แบบ unit test หรือ integration test เป็นหลัก
หน้าที่ของมันคือการตรวจว่ามีสิ่งใดในโค้ดที่ควรแก้ ควรระวัง หรือไม่ตรงกับกฎของทีม
lint กับ format ต่างกันอย่างไร
อีกประเด็นที่มือใหม่มักสับสนคือ lint และ format ไม่ใช่เรื่องเดียวกัน
lint เน้นการตรวจปัญหา ตรวจการละเมิดกฎ และช่วยบอกความเสี่ยงในโค้ด
format เน้นการจัดรูปแบบโค้ดให้มีหน้าตาเหมือนกัน เช่น การเยื้องบรรทัด การใช้ quote หรือการเว้นวรรค
แม้บางเครื่องมือจะทำได้ทั้งสองอย่าง แต่แนวคิดเบื้องหลังยังต่างกันอยู่ กล่าวคือ lint สนใจความถูกต้องเชิงกติกา ส่วน format สนใจความสม่ำเสมอในการจัดรูปแบบ
ถ้า lint ขึ้น error ควรทำอย่างไร
เมื่อสั่ง npm run lint แล้วเจอ error ไม่จำเป็นต้องตกใจ เพราะหลายครั้งมันไม่ได้หมายความว่าโปรแกรมพัง แต่เพียงกำลังแจ้งว่าโค้ดยังไม่ผ่านกฎที่ตั้งไว้
บางโปรเจกต์มีคำสั่งเสริม เช่น
npm run lint:fix
คำสั่งนี้มักใช้แก้ปัญหาบางส่วนให้อัตโนมัติ เช่น
- ลบช่องว่างเกิน
- ปรับรูปแบบ quote
- จัดรูปแบบบางส่วนให้ตรงตามกติกา
อย่างไรก็ตาม ไม่ใช่ทุกปัญหาจะถูกแก้อัตโนมัติได้ทั้งหมด นักพัฒนายังควรอ่านข้อความแจ้งเตือนและทำความเข้าใจว่าเครื่องมือกำลังเตือนเรื่องอะไร
ทำไมหลายทีมบังคับให้รัน lint ก่อน commit หรือก่อน merge
หลายทีมกำหนดให้ต้องผ่าน lint ก่อน commit หรือก่อน merge ผ่านระบบ CI ไม่ใช่เพียงเพื่อความเข้มงวด แต่เพื่อป้องกันไม่ให้ปัญหาเล็กๆ หลุดเข้า branch หลักแล้วกลายเป็นภาระแก้ไขภายหลัง
แนวทางนี้ช่วยให้
- ลดงานแก้ style ใน code review
- ป้องกันข้อผิดพลาดพื้นฐานก่อนรวมโค้ด
- ทำให้มาตรฐานโค้ดของทั้งทีมชัดเจนขึ้น
- ลด bug จุกจิกที่เกิดจากความไม่สม่ำเสมอ
เมื่อทุกคนทำตามกติกาเดียวกัน การทำงานร่วมกันก็จะมีประสิทธิภาพมากขึ้นอย่างเห็นได้ชัด
สรุป
npm run lint คือคำสั่งสำหรับตรวจความเรียบร้อยและคุณภาพของโค้ดตามที่โปรเจกต์กำหนดไว้ มันช่วยจับข้อผิดพลาดเล็กๆ เตือนจุดเสี่ยง และทำให้โค้ดมีความสม่ำเสมอมากขึ้น
แม้จะไม่ได้มีไว้รันโปรแกรมหรือทดสอบ logic โดยตรง แต่ lint เป็นผู้ช่วยสำคัญที่ช่วยลด bug ปรับคุณภาพโค้ด และทำให้การทำงานร่วมกันในทีมเป็นระบบขึ้น
หากครั้งหน้าเจอคำสั่ง npm run lint ในโปรเจกต์ ลองนึกภาพว่ามันคือผู้ช่วยตรวจการบ้านของโค้ด ที่ช่วยให้เราแก้งานได้ตั้งแต่ก่อนปัญหาจะหลุดไปถึง production