ด้วยความที่ช่วงก่อนหน้านี้ได้ทำแอปพลิเคชันที่ใช้ cloud-functions ของ firebase แบบพอเป็นรูปเป็นร่างเลยได้เห็นปัญหาในตอนที่เริ่มพัฒนาคือ การ configuration ของ firebase emulater สิ่งที่ต้องการเราอยากให้ could-functions กับ firestore สามารถรันระบบพร้อมกันในค่ำสั่งเดียว และเมื่อไหร่ก็ตามที่เราแก้ไขโค้ด อยากให้ระบบ re-compile โค้ด typescript แล้วไป restart โค้ด function ของเราให้อัตโนมัติ
โปรแกรมเมอร์มืออาชีพชอบหาเครื่องมือต่าง ๆ มาใช้เพื่ออำนวยความสะดวกกับการพัฒนาซอฟต์แวร์ของพวกเขา เราพยามหาสิ่งนั้นเช่นกัน และจากที่ค้นหาดูก็พบสิ่งที่ช่วยได้ เขาเรียกว่า Task Runner ซึ่งมีหลายอย่าง สำหรับบทความนี้ใช้ package ที่มีชื่อว่า npm-run-all
https://www.npmjs.com/package/npm-run-all
เราจะนำ pacakage มาใช้รันคำสั่ง script ที่ได้กำหนดไว้ในไฟล์ package.json ความสามารถของมันจะช่วยให้ระบบสามารถรันคำสั่งได้ทีละหลายคำสั่งในเวลาเดียวกัน
จากโค้ดตัวอย่างข้างบนให้เราสังเกตบรรทัดที่ 4 เป็นการสั่งให้ระบบรันคำสั่งสองอย่าง หนึ่งคือ
start:firebase
เป็นคำสั่งสตาร์ท firebase emulator ในที่นี้ผมได้ตั้งค่าให้เปิดเซิร์ฟ cloud functions และ firestore คำสั่งที่สองคือ
start:build
เป็นคำสั่งให้ระบบตรวจสอบว่าโค้ด Typescript ในโปรเจคของเราเกิดการเปลี่ยนแปลงขึ้นหรือไม่ซึ่งหากมีการแก้ไขคำสั่ง tsc จะ compile โค้ด Typescript ไปเป็น Javascript ในทันที
*หากดูคำสั่งที่บรรทัด 4 จะเห็นได้ว่าหลัง start: เป็นเครื่องหมายดอกจันทร์ มันเป็นคำสั่งรูปแบบ glob เราสามารถใช้ความสามารถนี้เพื่อรันจำนวนคำสั่งตามที่เราต้องการได้นั่นเอง
full-stack developer