Skip to main content

Plugin Dependencies ของ Claude Code

Version constraints, การ resolve dependencies และ cross-marketplace dependencies

ภาพรวม

Plugins สามารถประกาศ dependencies กับ plugins อื่นได้ ช่วยให้สามารถแชร์ functionality ข้ามหลาย plugins ได้โดยไม่ต้อง duplicate code

การประกาศ Dependencies

ใน plugin.json

{
"name": "my-plugin",
"dependencies": [
"helper-lib",
{ "name": "secrets-vault", "version": "~2.1.0" }
]
}

รูปแบบ Dependencies

รูปแบบความหมาย
"helper-lib"dependency โดยไม่ระบุเวอร์ชัน
{ "name": "lib", "version": "2.1.0" }เวอร์ชันเจาะจง
{ "name": "lib", "version": "~2.1.0" }patch versions ที่ compatible
{ "name": "lib", "version": "^2.0.0" }minor versions ที่ compatible

Version Constraints

Claude Code ใช้ semantic versioning (semver) สำหรับ version constraints:

Semver Range Syntax

Syntaxความหมาย
"2.1.0"เวอร์ชัน 2.1.0 เท่านั้น
"~2.1.0">=2.1.0 <2.2.0
"^2.0.0">=2.0.0 <3.0.0
">=2.0.0"2.0.0 หรือใหม่กว่า
"*"ทุกเวอร์ชัน

การ Tag Release สำหรับ Version Resolution

สร้าง git tag ด้วยรูปแบบ {plugin-name}--v{version} เพื่อให้ Claude Code สามารถ resolve version constraints ได้:

# Tag เวอร์ชันใหม่
claude plugin tag

# หรือ push พร้อมกัน
claude plugin tag --push

Dependency Resolution

เมื่อติดตั้ง plugin ที่มี dependencies:

  1. Claude Code ตรวจสอบ dependencies ทั้งหมดที่ประกาศไว้
  2. หา versions ที่ตรงกับ constraints
  3. ติดตั้ง dependencies โดยอัตโนมัติถ้ายังไม่มี
  4. แจ้งเตือนถ้า conflict ที่แก้ไขไม่ได้

ลำดับ Resolution

  1. version ใน plugin.json ของ plugin
  2. version ใน marketplace entry
  3. git commit SHA ของ plugin source

Cross-Marketplace Dependencies

การตั้งค่า

Marketplace สามารถอนุญาต dependencies จาก marketplaces อื่นได้:

{
"name": "my-marketplace",
"allowCrossMarketplaceDependenciesOn": [
"official-marketplace",
"trusted-partner"
]
}

ข้อจำกัดด้านความปลอดภัย

Dependencies จาก marketplace ที่ไม่อยู่ใน allowCrossMarketplaceDependenciesOn จะถูกบล็อคเมื่อติดตั้ง เพื่อป้องกัน supply chain attacks

การ Enable/Disable Plugins ที่มี Dependencies

การ Enable

เมื่อ enable plugin ที่ต้องการ dependencies:

claude plugin enable my-plugin

Claude Code จะ enable dependencies ทั้งหมดโดยอัตโนมัติถ้าติดตั้งแล้ว หรือแจ้งให้ติดตั้งถ้ายังไม่มี

การ Disable

เมื่อ disable plugin ที่มี plugins อื่น depend อยู่ คำสั่งจะ fail พร้อมข้อความแสดง dependencies:

claude plugin disable helper-lib
# Error: my-plugin depends on helper-lib. Disable my-plugin first.

การ Prune Dependencies

ลบ dependencies ที่ไม่ถูกใช้งานแล้ว:

claude plugin prune

หรือลบ plugin พร้อม cleanup dependencies:

claude plugin uninstall my-plugin --prune

ดูสิ่งที่เกี่ยวข้อง