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:
- Claude Code ตรวจสอบ dependencies ทั้งหมดที่ประกาศไว้
- หา versions ที่ตรงกับ constraints
- ติดตั้ง dependencies โดยอัตโนมัติถ้ายังไม่มี
- แจ้งเตือนถ้า conflict ที่แก้ไขไม่ได้
ลำดับ Resolution
versionในplugin.jsonของ pluginversionใน marketplace entry- 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
ดูสิ่งที่เกี่ยวข้อง
- ./plugins - การสร้างและใช้งาน plugins
- ./plugin-marketplaces - การกระจาย plugins
- ./plugins-reference - Technical reference