ในภาษา Node.js ไม่มีความแตกต่างที่สำคัญระหว่างแพ็คเกจและโมดูล แพ็คเกจเป็นสิ่งที่เป็นนามธรรมลึกขึ้นอยู่กับโมดูล แพ็คเกจห่อหุ้มฟังก์ชั่นอิสระบางอย่างสำหรับการปล่อยอัปเดตการจัดการการพึ่งพาและการควบคุมเวอร์ชัน Node.js ใช้กลไกแพ็คเกจตามข้อกำหนดของ CommonJS และพัฒนา NPM เพื่อแก้ปัญหาการเปิดตัวแพ็คเกจและความต้องการการซื้อกิจการ
แพ็คเกจ node.js เป็นไดเรกทอรีที่มีแพ็คเกจคำอธิบายไฟล์แพ็คเกจไฟล์. json ในรูปแบบ JSON แพ็คเกจ Node.js โดยทั่วไปจะเป็นไปตามข้อกำหนดของ CommonJS ดังนั้นจึงมีคุณสมบัติดังต่อไปนี้:
คุณสมบัติแพ็คเกจที่กำหนดโดยข้อกำหนด CommonJS:
1) ไดเรกทอรีระดับบนสุดมีไฟล์ package.json;
2) ไดเรกทอรีถังเก็บไฟล์ไบนารี;
3) ไดเรกทอรี LIB เก็บไฟล์ JavaScript;
4) Doc Directory เก็บเอกสาร;
5) ไดเรกทอรีทดสอบเก็บการทดสอบหน่วย
โมดูล node.js และไฟล์สอดคล้องกันทีละหนึ่ง ไฟล์ไม่เพียง แต่เป็นไฟล์ต้นฉบับ JavaScript หรือไฟล์ไบนารี แต่ยังเป็นไดเรกทอรี แพ็คเกจที่ง่ายที่สุดคือโมดูลไดเรกทอรี
แพ็คเกจ Node.js มักจะเป็นคอลเลกชันของโมดูลบางอย่างซึ่งให้ abstractions ระดับสูงกว่าตามโมดูลซึ่งเทียบเท่ากับการจัดหาไลบรารีฟังก์ชั่นอินเทอร์เฟซแบบคงที่
โดยการปรับแต่งแพ็คเกจ. json เราสามารถสร้างแพ็คเกจที่ซับซ้อนมากขึ้นสมบูรณ์และเป็นมาตรฐานมากขึ้นสำหรับการเผยแพร่
เมื่อ node.js เรียกแพ็คเกจก่อนอื่นจะตรวจสอบฟิลด์หลักของไฟล์ package.json ในแพ็คเกจและใช้เป็นโมดูลอินเตอร์เฟสแพ็คเกจ หากไม่มีฟิลด์หลักของไฟล์ package.json อยู่ Node.js จะพยายามค้นหา index.js หรือ index.node เป็นอินเทอร์เฟซแพ็คเกจ
ไฟล์ package.json เป็นไฟล์ที่ใช้โดยข้อกำหนด CommonJS เพื่ออธิบายแพ็คเกจ ไฟล์ package.json ที่สอดคล้องกับข้อกำหนดควรมีฟิลด์ต่อไปนี้:
1) ชื่อ: ชื่อแพ็คเกจ ชื่อแพ็คเกจนั้นไม่ซ้ำกันและประกอบด้วยตัวอักษรตัวพิมพ์เล็กตัวเลขและขีดเส้นใต้และไม่สามารถมีช่องว่างได้
2) คำอธิบาย: คำอธิบายแพ็คเกจ คำอธิบายสั้น ๆ ของแพ็คเกจ
3) เวอร์ชัน: หมายเลขเวอร์ชัน สตริงเวอร์ชันที่ตรงกับข้อกำหนดการจดจำเวอร์ชันความหมาย
4) คำหลัก: อาร์เรย์คำหลักมักใช้สำหรับการค้นหา
5) ผู้ดูแล: อาร์เรย์ผู้ดูแล แต่ละองค์ประกอบมีฟิลด์ชื่ออีเมล (ไม่บังคับ) และเว็บ (ตัวเลือก)
6) ผู้มีส่วนร่วม: อาร์เรย์ของผู้มีส่วนร่วม รูปแบบเหมือนกับอาร์เรย์ผู้ดูแล ผู้เขียนแพ็คเกจควรเป็นองค์ประกอบแรกของอาร์เรย์ผู้สนับสนุน
7) ข้อบกพร่อง: ที่อยู่ในการส่งข้อผิดพลาดอาจเป็น URL หรือที่อยู่อีเมล
8) ใบอนุญาต: อาร์เรย์ใบอนุญาต แต่ละองค์ประกอบจะต้องมีประเภท (ชื่อใบอนุญาต) และ URL (ที่อยู่ที่เชื่อมโยงกับข้อความใบอนุญาต)
9) ที่เก็บ: อาร์เรย์ของที่อยู่โฮสติ้งที่เก็บ แต่ละองค์ประกอบจะต้องมีประเภท (ประเภทของที่เก็บเช่น GIT), URL (ที่อยู่ที่เก็บ) และเส้นทาง (ทางเลือกสัมพันธ์กับเส้นทางที่เก็บ)
10) การพึ่งพา: การพึ่งพาแพ็คเกจ เป็นอาร์เรย์ที่เชื่อมโยงซึ่งประกอบด้วยชื่อแพ็คเกจและหมายเลขเวอร์ชัน
หมายเหตุ: ข้อกำหนด "การจดจำเวอร์ชันความหมาย" เป็นชุดข้อมูลจำเพาะการตั้งชื่อเวอร์ชันที่เสนอโดยต่างประเทศ วัตถุประสงค์ดั้งเดิมคือการแก้ปัญหาการเปรียบเทียบขนาดหมายเลขรุ่นต่างๆและปัจจุบันได้รับการยอมรับจากระบบการจัดการแพ็คเกจหลายระบบ
นี่คือตัวอย่างแพ็คเกจ JSON ที่สอดคล้องกับข้อกำหนด CommonJS อย่างเต็มที่:
การคัดลอกรหัสมีดังนี้:
-
"ชื่อ": "TestPackage",
"คำอธิบาย": "แพ็คเกจของฉันสำหรับ Commonjs",
"เวอร์ชัน": "0.1.0"
"คำหลัก": [
"TestPackage",
"liq"
-
"ผู้ดูแล": [
-
"ชื่อ": "liq",
"อีเมล": "[email protected]"
-
-
"ผู้สนับสนุน": [
-
"ชื่อ": "liq",
"เว็บ": "http://blog.csdn.net/chszs"
-
-
"ข้อบกพร่อง": {
"Mail": "[email protected]"
"เว็บ": "http://blog.csdn.net/chszs"
-
"ใบอนุญาต": [
-
"พิมพ์": "Apache License v2",
"url": "http://www.apache.org/licenses/apache2.html"
-
-
"ที่เก็บ": [
-
"พิมพ์": "Git",
"url": "http://github.com/chszs/packagetest.git"
-
-
"การพึ่งพา": {
"WebKit": "1.2",
"SSL": {
"gnutls": ["1.0", "2.0"],
"openssl": "0.9.8"
-
-
-