package.json Generator: สร้าง package.json ที่ถูกต้องในเบราว์เซอร์
สร้าง package.json ที่ถูกต้องได้ในไม่กี่นาทีด้วย package.json Generator ฟรี ใส่ scripts, dependencies, engines และ exports พร้อม live preview และดาวน์โหลดไฟล์ได้ทันที ไม่ต้องติดตั้งอะไรเพิ่ม
เครื่องมือออนไลน์ฟรี
ตัวสร้าง package.json
สร้าง package.json ที่ถูกต้อง ครบทั้ง name, version, scripts, dependencies, devDependencies, engines และ metadata พร้อม live preview, การตรวจสอบความถูกต้อง และดาวน์โหลดได้ในคลิกเดียว — ทำงานในเบราว์เซอร์ทั้งหมด
Table of Contents
ทุกโปรเจกต์ Node.js เริ่มต้นจากไฟล์เดียวกันคือ package.json — ไฟล์ที่บอก npm ว่าแพ็กเกจของเราชื่ออะไร เวอร์ชันอะไร build ยังไง ใช้ dependency อะไรบ้าง และรองรับ Node.js เวอร์ชันไหน ถ้าเขียนผิด สิ่งที่ตามมาคือ install พัง, CI ล้มเหลว และ error จาก npm registry ที่อ่านไม่รู้เรื่อง
package.json Generator ช่วยขจัดปัญหาเหล่านี้ แทนที่จะเขียน JSON เองหรือเปิด Google หาชื่อ field ทุกครั้ง แค่กรอกฟอร์มง่าย ๆ — name, version, scripts, dependencies, engines — แล้วดู manifest ถูกต้องประกอบร่างขึ้นมาแบบเรียลไทม์ใน live preview เมื่อพอใจแล้วกดดาวน์โหลดเป็นไฟล์ package.json เอาไปวางในโปรเจกต์ได้เลย
ทุกอย่างทำงานในเบราว์เซอร์ล้วน ๆ ไม่ต้องสมัครบัญชี ไม่ต้องติดตั้ง ไม่มีการอัปโหลด — ชื่อแพ็กเกจและรายละเอียดโปรเจกต์ของคุณไม่เคยออกจากเครื่อง เป็นวิธีเร็วที่สุดในการเริ่มจากโฟลเดอร์เปล่าสู่ manifest พร้อม publish ไม่ว่าจะเริ่ม library ใหม่, สร้าง script รันงาน หรือสอนคนอื่นว่า metadata ของ npm มันทำงานยังไง
ทำไมต้องใช้ package.json Generator
- ไม่ต้องเซ็ตอัพอะไร: ไม่ต้องรัน npm init ไม่ต้องติดตั้งเครื่องมือเพิ่ม เปิดหน้าเว็บแล้วเริ่มสร้างได้ทันที
- ได้ไฟล์ที่ถูกต้องทุกครั้ง: field version ถูกตรวจกับรูปแบบ semantic versioning (SemVer) จึงใส่ 1.0 หรือ abc ผ่านไม่ได้
- Live preview: JSON อัปเดตตามที่พิมพ์ เห็นชัดว่า field ไหนจะปรากฏในไฟล์จริง และ field ไหนถูกข้ามเมื่อว่าง
- ครอบคลุมทุก metadata: name, version, description, keywords, license, module type, จุด entry (main, types, exports, bin), files, scripts, dependencies และ engines อยู่ครบในหน้าจอเดียว
- เป็นส่วนตัวโดยดีไซน์: ทุกอย่าง generate แบบ client-side ในเบราว์เซอร์ ชื่อแพ็กเกจภายในและรายละเอียด tooling ของทีมจึงไม่หลุดออกไปไหน
- ตรงตาม npm ยุคใหม่: field อย่าง exports และ engines ใช้ convention ปัจจุบันของ ecosystem Node.js ไม่ใช่ boilerplate เก่ากว่าสิบปี
Key Features
| ฟีเจอร์ | ทำอะไร |
|---|---|
| ฟอร์มกรอกข้อมูลแบบมีคำแนะนำ | กรอก name, version, description, keywords, license (ค่าเริ่มต้น MIT) โดยไม่ต้องจำ syntax ของ JSON |
| เลือก module type | เลือก commonjs หรือ module (ESM) แล้ว field type ถูกใส่ให้ถูกต้อง |
| จุด entry point | ตั้ง main, types, exports, bin สำหรับ library และ CLI tool |
| ตัวแก้ไข scripts | เพิ่ม/ลบแถว npm scripts ได้ แต่ละแถวมีชื่อ script กับ command |
| แถว dependencies | เพิ่มแพ็กเกจพร้อมเวอร์ชันทีละแถว |
| field engines | ประกาศเวอร์ชัน Node.js ขั้นต่ำที่แพ็กเกจรองรับ |
| Live JSON preview | เห็น manifest อัปเดตแบบเรียลไทม์ขณะกรอกฟอร์ม |
| ปุ่มดาวน์โหลด | export ไฟล์เป็น package.json พร้อมเอาไป commit ได้ทันที |
มีรายละเอียดน่าสนใจอยู่ 3 ข้อ หนึ่ง ตัว generator จะใส่เฉพาะ field ที่คุณกรอกจริง — ฟอร์มว่างจะได้ manifest แบบมินิมอล ไม่ใช่ชุด field ว่างเต็มไปหมด สอง input version ตรวจกับรูปแบบ SemVer (เช่น 1.4.2 หรือ 2.0.0-beta.1) ช่วยดักพิมพ์ผิดก่อนถึงขั้นตอน publish สาม ปุ่ม reset ล้างทุกอย่างทันที สร้างหลายเวอร์ชันต่อเนื่องได้สบาย
วิธีใช้งาน
- เปิด package.json Generator ในเบราว์เซอร์
- กรอกข้อมูลพื้นฐาน: ชื่อแพ็กเกจ, version (รูปแบบ SemVer), description สั้น ๆ, keywords และ license — โอเพนซอร์สทั่วไปใช้ MIT
- เลือก module type (commonjs หรือ module) แล้วเพิ่มจุด entry ถ้าจะ publish library: main, types, exports หรือ path bin สำหรับ CLI tool
- เพิ่ม npm scripts (ชื่อ + command เช่น build → vite build) และ dependencies (ชื่อแพ็กเกจ + version range) ผ่านตัวแก้ไขแบบเพิ่มแถว
- ตั้ง engines.node ขั้นต่ำถ้าโค้ดต้องการ runtime เฉพาะ ตรวจ live JSON preview อีกครั้ง แล้วกด ดาวน์โหลด package.json เอาไฟล์ไปวางที่ root ของโปรเจกต์
ทั้งกระบวนการใช้เวลาไม่ถึงสองนาทีสำหรับโปรเจกต์ทั่วไป — เร็วกว่าไปเปิดเอกสารหา syntax exports ที่ถูกต้องเยอะ
ทำความเข้าใจ field ต่าง ๆ ใน package.json
package.json เป็นแค่ JSON ธรรมดา แต่แต่ละ field มีความหมายเฉพาะต่อ npm และ Node.js การรู้ว่า generator เขียนอะไรลงไป ช่วยให้ตัดสินใจได้ดีขึ้น
name และ version — สอง field นี้รวมกันเป็นตัวตนของแพ็กเกจบน npm registry ชื่อต้องเป็นตัวพิมพ์เล็กและ URL-safe ส่วน version ต้องเป็น SemVer (MAJOR.MINOR.PATCH) ตัว generator ตรวจรูปแบบ version ให้ จึงไม่ publish 1.0 หลุดไปโดยไม่รู้ตัว
type: module vs commonjs — field เดียวตัดสินว่า Node.js จะตีความไฟล์ .js ของคุณยังไง commonjs (ค่าเริ่มต้นแบบดั้งเดิม) ใช้ require() กับ module.exports ส่วน module เปิดใช้ ECMAScript modules ด้วย import/export การตั้งค่าอย่างชัดเจนช่วยเลี่ยง error ประเภท "Cannot use import statement outside a module" และ tooling ยุคใหม่จะอ่าน field นี้เป็นอันดับแรก
main, exports และ types — main คือ entry point เดียวแบบคลาสสิก exports คือตัวแทนยุคใหม่ ที่ map import path ได้หลายจุด (รวม subpath อย่าง my-pkg/utils) และซ่อนไฟล์ภายในจากผู้ใช้งานได้ types ชี้ TypeScript ไปที่ declaration file ถ้าจะ publish library แนะนำให้ใช้ exports และเก็บ main ไว้เป็น fallback สำหรับ toolchain เก่า
scripts — คือคำสั่งที่ npm run เรียกได้ เช่น build, test, dev, prepublishOnly หรือชื่อ custom ที่คุณตั้งเอง script ที่ตั้งชื่อดีคือเอกสารประกอบ ทีมใหม่แค่รัน npm run ก็เข้าใจ workflow ของโปรเจกต์ได้ทันที
dependencies vs devDependencies — dependencies ถูกใช้ตอน runtime ร่วมกับแพ็กเกจของคุณ ส่วน devDependencies (build tool, test runner, type checker) จำเป็นแค่ตอนพัฒนา แถว dependency ของ generator เป็นตัวบันทึกสิ่งที่คุณประกาศ — แยก build tooling ออกจาก runtime dependencies ให้ผู้ใช้ติดตั้งน้อยลง
engines — การประกาศ engines.node (เช่น >=20) บอกผู้ใช้ว่าแพ็กเกจรองรับ runtime เวอร์ชันไหน ป้องกันบั๊กคลาสสิกที่โค้ดใช้ API ใหม่แต่ Node.js เวอร์ชันเก่าไม่มี
Use Cases ในการใช้งานจริง
เริ่ม library ใหม่
กำลังจะ publish แพ็กเกจ npm เป็นครั้งแรก กรอกชื่อ ตั้ง version เป็น 0.1.0 เลือก module เพิ่ม main, types, exports ชี้ไปที่ build output และประกาศ engines.node จากนั้นดาวน์โหลดไฟล์ รัน npm publish แล้ว registry จะรับไฟล์ตั้งแต่ครั้งแรก — ไม่มี error เรื่อง field ขาด
Scaffolding เครื่องมือภายในทีม
สำหรับ script และ automation ที่ไม่ได้ publish ส่วนใหญ่ field จะว่างเกือบหมด — และนั่นคือเรื่องปกติ ใส่แค่ชื่อ, scripts ที่ต้องใช้ (start, deploy) และ dependencies เท่านั้น generator จะ emit เฉพาะ manifest มินิมอลเท่านั้น ซึ่งสะอาดกว่าการก๊อป template บวม ๆ จากโปรเจกต์อื่น
การสอนและทำเอกสาร
กำลังเขียน tutorial เรื่อง npm อยู่ใช่ไหม ภาพหน้าจอไฟล์สำเร็จรูปมีประโยชน์น้อยกว่าการเห็นกระบวนการสร้างจริง ให้ผู้เรียนไล่กรอกฟอร์ม: ทุก field ที่กรอก map กับ concept — SemVer, ESM vs CommonJS, dependency types — และ live preview แสดง JSON ทยอยปรากฏแบบเรียลไทม์
มาตรฐานเดียวกันทั้งทีม
ถ้าแต่ละ repo ในทีมมีรูปแบบ package.json ต่างกันเล็กน้อย ให้ generate ไฟล์มาตรฐานต่อประเภทโปรเจกต์ (library, CLI, internal service) commit เป็น template แล้วให้เพื่อนร่วมทีม generate manifest ที่สม่ำเสมอ แทนการแก้ JSON มือทีละไฟล์
Best Practices
- ตรวจ version ก่อน publish ทุกครั้ง: ยึด SemVer เคร่งครัด เพิ่ม MAJOR เมื่อ breaking change, MINOR เมื่อเพิ่มฟีเจอร์, PATCH เมื่อแก้บั๊ก
- ตั้ง type อย่างชัดเจน: แม้วันนี้ใช้ CommonJS ก็ควรประกาศไว้ เพื่อไม่ให้เกิดเซอร์ไพรส์ตอนเพิ่มไฟล์ใหม่ภายหลัง
- ใช้ exports แทน main สำหรับ library: ได้ public path ที่เสถียรและซ่อนไฟล์ภายในได้
- dependencies ต้องซื่อสัตย์: แพ็กเกจอยู่ใน dependencies ต่อเมื่อผู้ใช้ต้องใช้ตอน runtime ที่เหลือย้ายไป devDependencies
- ประกาศ engines.node: เป็นวิธีที่ถูกที่สุดในการป้องกัน runtime error แบบ "เครื่องฉันรันได้"
- ดู live preview ก่อนดาวน์โหลด: preview คือความจริงของไฟล์ — ถ้า field ที่คาดไว้หายไป แปลว่าฟอร์มช่องนั้นยังว่างอยู่
สรุป: ได้ Manifest พร้อม Publish ใน 2 นาที
package.json Generator เปลี่ยนไฟล์ที่ npm developer ต้องแก้บ่อยที่สุดให้เป็นฟอร์ม 2 นาที: ฟิลด์พร้อมคำแนะนำ, version ตรวจ SemVer, live preview และดาวน์โหลดทันที ไม่ต้องติดตั้ง ไม่ต้องสมัคร ข้อมูลไม่ออกจากเบราว์เซอร์ คราวหน้าที่เริ่มโปรเจกต์ใหม่ — หรือจะเก็บกวาดโปรเจกต์เก่า — ข้าม boilerplate แล้ว generate manifest ไปเลย
เครื่องมือที่เกี่ยวข้อง
- JSON Formatter — จัดรูป JSON, validate และ minify ได้ รวมถึง manifest ที่เพิ่ง generate มาด้วย
- NPM Run Scripts Builder — ออกแบบและจัดระเบียบ block npm scripts ก่อนเอาไปวางในโปรเจกต์จริง
- SemVer Calculator — เช็กว่า version range คำนวณยังไง และวางแผน bump เวอร์ชันครั้งถัดไปอย่างมั่นใจ
ขอให้สนุกกับการเขียนโค้ด!
คำถามที่พบบ่อย
ถ: package.json Generator ใช้ฟรีจริงหรือเปล่า? ตอบ: ฟรีครับ ทำงานทั้งหมดในเบราว์เซอร์ ไม่ต้องสมัคร ไม่จำกัดจำนวน ไม่มีค่าใช้จ่าย — generate manifest กี่ครั้งก็ได้
ถ: ข้อมูลแพ็กเกจของผมถูกอัปโหลดไปที่ไหนหรือเปล่า? ตอบ: ไม่ ทุกอย่าง generate แบบ client-side ชื่อแพ็กเกจ, dependencies และ scripts ของคุณไม่เคยออกจากเครื่อง
ถ: แก้ไขไฟล์ที่ generate แล้วภายหลังได้ไหม? ตอบ: ได้แน่นอน ไฟล์ที่ดาวน์โหลดคือ package.json ปกติ แก้มือได้ หรือจะเอากลับเข้าฟอร์มของเครื่องมือเพื่อ generate เวอร์ชันสะอาดใหม่ก็ได้
ถ: main กับ exports ต่างกันยังไง? ตอบ: main คือ entry point เดียวแบบ legacy ส่วน exports คือ field ยุคใหม่ที่ map จุด import ได้หลายจุด รองรับ subpath import และจำกัดสิ่งที่ผู้ใช้ import ได้ library ยุคใหม่มักกำหนดทั้งสอง field
ถ: ควรเลือก module หรือ commonjs ดี? ตอบ: ถ้าเริ่มโปรเจกต์ใหม่ใช้ import/export กับ tooling ยุคใหม่ เลือก module แต่ถ้าโค้ดใช้ require() หรือต้องรองรับ Node.js เวอร์ชันเก่า ให้เลือก commonjs