ตัวสร้าง package.json

package.json
ถัดไป

แทนที่จะต้องรันโปรแกรม npm init และตอบคำถามจำนวน 11 ข้อ ให้กรอกแบบฟอร์มเพียงเท่านั้น ก็จะได้ไฟล์ package.json ที่มีโครงสร้างชัดเจนและถูกต้องตามมาตรฐาน เครื่องมือนี้ครอบคลุมข้อมูลจำเป็น (ชื่อและเวอร์ชัน) ข้อมูลที่ใช้บ่อย (สคริปต์ ขึ้นอยู่กับส่วนประกอบต่างๆ การพึ่งพาในการพัฒนา และเอนจินที่ใช้) รวมถึงรายละเอียดเสริมสำคัญ เช่น แหล่งจัดเก็บไฟล์ ข้อผิดพลาด คำสำคัญ และใบอนุญาตการใช้งาน ซึ่งล้วนมีบทบาทในการทำให้แพ็กเกจสามารถค้นหาและเผยแพร่ได้อย่างสะดวก

วิธีสร้างไฟล์ package.json ของคุณ

  1. 1

    กรุณาป้อนชื่อและเวอร์ชัน

    ชื่อต้องเป็นไปตามกฎของ npm: ใช้ตัวพิมพ์เล็ก ปลอดภัยสำหรับ URL และมีความยาวไม่เกิน 214 ตัวอักษร ส่วนเวอร์ชันใช้รูปแบบ semver (เช่น 0.1.0)

  2. 2

    เลือกประเภทโมดูล

    CommonJS (ค่าเริ่มต้น) หรือ ESM โดยใช้ประเภท "module", กำหนดการใช้งานสำหรับโปรเจกต์ Node.js เวอร์ชัน 14 และต่อไป

  3. 3

    เพิ่มสคริปต์

    เริ่มต้น สร้าง ทดสอบ และตรวจสอบโค้ด, สั่งการเหล่านี้จะทำงานโดยใช้ `npm run <name>`

  4. 4

    รายการขึ้นอยู่กัน

    แพ็กเกจสำหรับการรันโปรแกรมอยู่ในส่วนของขึ้นอยู่ (dependencies) ส่วนเครื่องมือต่างๆ อยู่ในส่วนของขึ้นอยู่สำหรับการพัฒนา (devDependencies)

  5. 5

    การตั้งค่าเมตาดาต้า

    คำอธิบาย ผู้เขียน ใบอนุญาต URL ของคลังข้อมูล และคำสำคัญ

  6. 6

    คัดลอกผลลัพธ์

    วางไฟล์ลงในไฟล์ package.json ใหม่ที่ตำแหน่งรากของโปรเจกต์

ฟิลด์ที่สำคัญที่สุด

ฟิลด์ จำเป็นหรือไม่? หมายเหตุ
name ใช่ ตัวอักษรเล็ก 1–214 ตัว ปลอดภัยสำหรับ URL
version ใช่ Semver (รุ่นหลัก/รอง/ฉบับปรับปรุง)
type ไม่ ใช้ “module” สำหรับ ESM; สามารถไม่ระบุได้หากใช้ CommonJS
main แนะนำ จุดเริ่มต้นสำหรับ CommonJS (index.js)
exports แนะนำ แผนที่การส่งออกแบบสมัยใหม่สำหรับระบบ CJS/ESM แบบคู่
scripts แนะนำอย่างยิ่ง คำสั่ง npm run <name>
dependencies ตามความจำเป็น แพ็กเกจสำหรับใช้งานระหว่างโปรแกรม
devDependencies ตามความจำเป็น เครื่องมือสำหรับการพัฒนา โปรแกรมทดสอบ และเครื่องตรวจค้นข้อผิดพลาด
engines เป็นฟีเจอร์ที่น่าสนใจ ช่วงเวอร์ชันของโหนดที่จำเป็น
license ใช่ สำหรับการเผยแพร่ ตัวระบุ SPDX เช่น MIT, Apache-2.0

แบบฟอร์มข้อมูลสำรองสำหรับ Semver

  • 1.0.0, major.minor.patch
  • ^1.0.0, เข้ากันได้กับเวอร์ชัน 1.x.x (≥1.0.0, <2.0.0)
  • ~1.0.0, ใช้สำหรับการอัปเดตแพตช์เท่านั้น (เวอร์ชัน ≥1.0.0 และ <1.1.0)
  • >=1.0.0 <2.0.0, ช่วงค่าที่ระบุอย่างชัดเจน
  • 1.0.0-beta.1, prerelease
  • latest, แท็ก npm ไม่ใช่เวอร์ชัน

ค่าเริ่มต้นเมื่อใช้งาน npm install package คือ ^ ซึ่งอนุญาตให้ทำการอัปเกรดโดยไม่ทำให้ระบบหยุดทำงาน

สคริปต์มาตรฐานที่ควรมี

{
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js",
    "build": "tsc",
    "test": "vitest",
    "lint": "eslint .",
    "format": "prettier --write ."
  }
}

ข้อผิดพลาดในการตั้งชื่อ

  • ไม่มีตัวอักษรใหญ่: MyPackage ไม่สามารถทำงานร่วมกับ npm install ได้
  • ไม่ต้องใช้ช่องว่าง ให้ใช้เครื่องหมายเส้นสายขวางแทน เช่น: my-package
  • ชื่อสกอปจะเริ่มต้นด้วย @org/ สำหรับองค์กรบน GitHub หรือ npm: เช่น @acme/utils
  • คำที่สงวนไว้: node_modules, favicon.ico, core และ express ไม่สามารถใช้เป็นชื่อแพ็กเกจได้

ตัวเลือกใบอนุญาต

เลือกตัวระบุ SPDX ที่ได้รับการยอมรับ:

  • MIT, เป็นตัวเลือกที่ได้รับความนิยมมากที่สุดและเปิดกว้างที่สุด
  • Apache-2.0 – เป็นรูปแบบที่อนุญาตการใช้งานได้ และมีการอนุมัติสิทธิบัตร
  • ISC, ใบอนุญาตแบบ MIT ที่สั้นมาก และเป็นค่าเริ่มต้นของ npm
  • GPL-3.0 หรือเวอร์ชันใหม่กว่า – เป็นลิขสิทธิ์แบบโคปีเลฟต์ (copyleft)
  • UNLICENSED, แพ็กเกจส่วนตัว ไม่สำหรับการแจกจ่าย

สตริงใบอนุญาตที่ผิดหรือไม่ชัดเจนจะทำให้เกิดการแจ้งเตือนเมื่อมีการเผยแพร่บน npm

คำถามที่พบบ่อย

การติดตั้งขึ้นอยู่จะเกิดขึ้นเมื่อมีผู้ใช้งานโปรแกรม npm install ในโปรเจกต์ที่ใช้โปรแกรมของคุณ โดยขึ้นอยู่เฉพาะในสภาพแวดล้อมการพัฒนาของแพ็กเกจนั้นเอง ส่วนแพ็กเกจสำหรับใช้งานระหว่างรัน (runtime packages) ควรจัดอยู่ในหมวดขึ้นอยู่ และเครื่องมือสำหรับการทดสอบและการสร้างโปรแกรมควรจัดอยู่ในหมวดขึ้นอยู่สำหรับการพัฒนา

ใช่ สำหรับการประยุกต์ใช้งาน โดยไฟล์ล็อกจะระบุเวอร์ชันที่แน่นอน และช่วยให้สามารถติดตั้งได้อย่างสม่ำเสมอและสอดคล้องกันบนเครื่องต่างๆ รวมถึงในกระบวนการทดสอบการผลิต (CI) ส่วนแพ็กเกจไลบรารีที่เผยแพร่ผ่าน npm ไฟล์ล็อกนั้นเป็นตัวเลือก, ผู้ใช้แต่ละรายจะได้รับไฟล์ล็อกเฉพาะของตนเอง

คุณต้องตั้งค่าให้แพ็กเกจใช้รูปแบบ ESM (ไวยากรณ์การนำเข้า/ส่งออก) เป็นค่าเริ่มต้นเท่านั้น หากไม่ทำเช่นนั้น ไฟล์ .js จะถูกจัดเป็นไฟล์ CommonJS นอกจากนี้ คุณสามารถใช้นามสกุล .mjs สำหรับไฟล์ ESM หรือ .cjs สำหรับไฟล์ CommonJS ได้ โดยไม่ขึ้นอยู่กับประเภทของไฟล์

เวอร์ชันของโหนดที่ใช้ทดสอบโค้ดของคุณ โดยปกติแล้วจะเลือกใช้ "engines": {"node": ">=18"} ซึ่งเป็นเพียงคำเตือน ไม่ใช่ข้อผิดพลาด แต่อุปกรณ์จะถือคำเตือนนี้เป็นไปตามมาตรฐาน และผู้ใช้งานก็สามารถจัดการได้อย่างถูกต้อง

เครื่องมือที่เกี่ยวข้อง

ตารางอ้างอิง ASCII

ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL

อ้างอิงตัวอักษร HTML

รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ

ตารางอ้างอิงแป้นพิมพ์ลัด

ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux

ตัวตรวจสอบอีเมล

ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ

เครื่องมือสร้าง EditorConfig

สร้างไฟล์ .editorconfig ด้วยกฎสไตล์และขนาดการเยื้อง การจบบรรทัด ชุดอักขระ และช่องว่างของคุณ เพื่อให้การจัดรูปแบบสอดคล้องกันในทุก IDE และโปรแกรมแก้ไข

ตัวลดรูปพีชคณิตบูลีน

ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^

เครื่องมือนี้มีให้บริการในภาษาอื่น