pnpm-lock.yaml kullanır. Yayımlanan OpenClaw npm paketleri, npm’in yayımlanabilir bağımlılık kilit dosyası olan npm-shrinkwrap.json kullanır; böylece paket kurulumları, sürüm sırasında incelenen bağımlılık grafiğini kullanır.
Kolay sürüm
Shrinkwrap, bir npm paketiyle birlikte gönderilen bağımlılık ağacı için bir makbuzdur. npm’e hangi kesin geçişli paket sürümlerini kuracağını söyler. OpenClaw sürümleri için bunun anlamı şudur:- yayımlanan paket, kurulum sırasında npm’den yeni bir bağımlılık grafiği icat etmesini istemez;
- bağımlılık değişiklikleri bir kilit dosyasında göründüğü için incelenmesi kolaylaşır;
- sürüm doğrulaması, kullanıcıların kuracağı grafiğin aynısını test edebilir;
- paket boyutu veya yerel bağımlılık sürprizlerini yayımlamadan önce fark etmek kolaylaşır.
openclaw security audit komutunun, paket kökeninin veya kurulum smoke testlerinin yerini almaz.
Kısa zihinsel model:
| Dosya | Önemli olduğu yer | Anlamı |
|---|---|---|
pnpm-lock.yaml | OpenClaw kaynak checkout | Bakımcı bağımlılık grafiği |
npm-shrinkwrap.json | Yayımlanan npm paketi | Kullanıcılar için npm kurulum grafiği |
package-lock.json | Yerel npm uygulamaları | OpenClaw yayımlama sözleşmesi değildir |
OpenClaw bunu neden kullanır?
OpenClaw bir gateway, plugin ana makinesi, model yönlendiricisi ve agent çalışma zamanıdır. Varsayılan kurulum; başlangıç süresini, disk kullanımını, yerel paket indirmelerini ve tedarik zinciri maruziyetini etkileyebilir. Shrinkwrap, sürüm incelemesine kararlı bir sınır sağlar:- inceleyenler geçişli bağımlılık hareketini görebilir;
- paket doğrulayıcıları beklenmeyen kilit dosyası kaymalarını reddedebilir;
- paket kabul süreci, gönderilecek grafikle kurulumları test edebilir;
- plugin paketleri, yalnızca plugin’e ait bağımlılıkların sahipliğini kök pakete bırakmak yerine kendi kilitlenmiş bağımlılık grafiklerini taşıyabilir.
Teknik ayrıntılar
Kökopenclaw npm paketi ve OpenClaw’a ait npm plugin paketleri, yayımlandıklarında npm-shrinkwrap.json içerir. Uygun OpenClaw’a ait plugin paketleri ayrıca açık bundledDependencies ile yayımlanabilir; böylece çalışma zamanı bağımlılık dosyaları, yalnızca kurulum zamanı çözümlemesine bağlı kalmak yerine plugin tarball içinde taşınır.
Sınırı şu şekilde koruyun:
pnpm-lock.yaml içinde zaten bulunmayan oluşturulmuş paket sürümlerini reddeder. Bu, pnpm bağımlılık yaşı, override ve yama inceleme sınırını sağlam tutar.
Yalnızca kök paketi kasıtlı olarak yenilerken ve plugin paketlerine dokunmak istemediğinizde yalnızca kök komutlarını kullanın:
pnpm-lock.yamlnpm-shrinkwrap.json- paketlenmiş plugin bağımlılık yükleri
- herhangi bir
package-lock.jsonfarkı
package-lock.json dosyasını reddeder.
Yayımlanmış bir kök paketi incelemek için: