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

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