N

Nokfa Docs

ไม่มีชื่อบทความ

คู่มืออธิบายไฟล์และโฟลเดอร์ที่ถูก Generate ขึ้นโดยอัตโนมัติ

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


1. โฟลเดอร์ .turbo/

ถูก generate ขึ้นมาได้อย่างไร:

  • ถูกสร้างขึ้นอัตโนมัติโดย Turbo (เช่น Turborepo) เมื่อมีการรันคำสั่งที่เกี่ยวข้องกับ Turbo เช่น turbo run build หรือ turbo run lint

ถูก generate มาจากไฟล์/คำสั่งไหน:

  • ทุกครั้งที่ Turbo ทำงานเพื่อเก็บ cache ผลลัพธ์ต่าง ๆ

หน้าที่/บทบาท:

  • เก็บข้อมูล cache และผลลัพธ์ของการ build/lint/test เพื่อให้ build ครั้งต่อไปเร็วขึ้น

ควรเพิ่มใน .gitignore หรือไม่:

  • ควรเพิ่มใน .gitignore เนื่องจากเป็นไฟล์ cache ที่แต่ละเครื่องจะมีข้อมูลที่แตกต่างกัน

หมายเหตุ:

  • หากต้องการ build หรือ rebuild โปรเจกต์แบบสะอาด สามารถลบโฟลเดอร์นี้ก่อนเริ่มการ build ใหม่ได้

2. โฟลเดอร์ node_modules/

ถูก generate ขึ้นมาได้อย่างไร:

  • สร้างโดยอัตโนมัติเมื่อใช้คำสั่งติดตั้ง dependency เช่น npm install, pnpm install, หรือ yarn install

ถูก generate มาจากไฟล์/คำสั่งไหน:

  • สร้างจาก package manager ที่ใช้งาน เช่น npm, yarn, pnpm

หน้าที่/บทบาท:

  • เก็บ dependency ทั้งหมดที่โปรเจกต์ใช้งาน

ควรเพิ่มใน .gitignore หรือไม่:

  • ควรเพิ่มใน .gitignore เพราะมีขนาดใหญ่ และแต่ละเครื่องอาจมีการติดตั้ง dependency ต่างกันตามสภาพแวดล้อม

หมายเหตุ:

  • ควรมีไฟล์ lock เช่น package-lock.json, yarn.lock, หรือ pnpm-lock.yaml เพื่อความสม่ำเสมอในการจัดการ dependency ทุกครั้ง

3. โฟลเดอร์ .next/ (สำหรับ Next.js)

ถูก generate ขึ้นมาได้อย่างไร:

  • สร้างขึ้นโดยอัตโนมัติเมื่อรันคำสั่ง next build หรือ next dev

ถูก generate มาจากไฟล์/คำสั่งไหน:

  • next build, next dev

หน้าที่/บทบาท:

  • เก็บไฟล์ build, output, cache และข้อมูลอื่น ๆ ที่ Next.js ใช้งาน

ควรเพิ่มใน .gitignore หรือไม่:

  • ควรเพิ่มใน .gitignore เพราะเป็นไฟล์ที่สามารถ build ใหม่ได้ทุกครั้งที่มีการ deploy หรือพัฒนาต่อ

หมายเหตุ:

  • ในขั้นตอน deploy อาจมีการ copy บางไฟล์จากโฟลเดอร์นี้ไปใช้ แต่ไม่ควร commit เข้า git โดยตรง

4. โฟลเดอร์ dist/ หรือ build/

ถูก generate ขึ้นมาได้อย่างไร:

  • สร้างโดยคำสั่ง build ของภาษาหรือ framework เช่น tsc (TypeScript), webpack, vite

ถูก generate มาจากไฟล์/คำสั่งไหน:

  • npm run build, pnpm build

หน้าที่/บทบาท:

  • เก็บไฟล์ที่เป็นผลลัพธ์ของการ build ซึ่งพร้อมสำหรับการ deploy

ควรเพิ่มใน .gitignore หรือไม่:

  • ควรเพิ่มใน .gitignore ยกเว้นกรณีพิเศษที่จำเป็นต้องใช้สำหรับ npm package หรือ static deploy

หมายเหตุ:

  • หากใช้ระบบ CI/CD ควรให้ build ใหม่ทุกครั้งเพื่อความสะอาดและถูกต้อง

5. ไฟล์ pnpm-lock.yaml

ถูก generate ขึ้นมาได้อย่างไร:

  • สร้างและอัปเดตโดยอัตโนมัติทุกครั้งที่มีการติดตั้ง อัปเดต หรือลบ dependency ผ่าน pnpm

ถูก generate มาจากไฟล์/คำสั่งไหน:

  • จากการรันคำสั่งของ pnpm เช่น pnpm install, pnpm add, pnpm remove

หน้าที่/บทบาท:

  • ล็อกเวอร์ชัน dependency ทั้งหมดที่ใช้จริงในโปรเจกต์ เพื่อให้การติดตั้ง dependency เป็นไปอย่างสม่ำเสมอทุกเครื่อง

ควรเพิ่มใน .gitignore หรือไม่:

  • ไม่ควรเพิ่มใน .gitignore และควร commit เข้า repo เพื่อให้ทุกเครื่องที่ clone โปรเจกต์มี dependency เดียวกัน

หมายเหตุ:

  • ไม่ควรแก้ไขไฟล์นี้ด้วยมือโดยตรง ควรให้ pnpm จัดการเท่านั้น

บทความนี้จะช่วยให้ทุกคนในทีมสามารถจัดการไฟล์ที่ถูก generate อัตโนมัติได้อย่างถูกต้อง ลดปัญหาการ commit ไฟล์ที่ไม่จำเป็น และช่วยให้ workflow การทำงานเป็นไปได้อย่างราบรื่น