pnpm-lock.yaml. I pacchetti npm
pubblicati di OpenClaw usano npm-shrinkwrap.json, il lockfile delle dipendenze
pubblicabile di npm, quindi le installazioni dei pacchetti usano il grafo delle
dipendenze revisionato durante il rilascio.
La versione semplice
Shrinkwrap è una ricevuta per l’albero delle dipendenze distribuito con un pacchetto npm. Indica a npm quali versioni esatte dei pacchetti transitivi installare. Per i rilasci di OpenClaw, questo significa che:- il pacchetto pubblicato non chiede a npm di inventare un nuovo grafo delle dipendenze al momento dell’installazione;
- le modifiche alle dipendenze diventano più facili da revisionare perché compaiono in un lockfile;
- la validazione del rilascio può testare lo stesso grafo che gli utenti installeranno;
- le sorprese legate alla dimensione del pacchetto o alle dipendenze native sono più facili da individuare prima della pubblicazione.
openclaw security audit, la provenienza dei pacchetti
o gli smoke test di installazione.
Il modello mentale breve:
| File | Dove conta | Cosa significa |
|---|---|---|
pnpm-lock.yaml | checkout sorgente OpenClaw | Grafo delle dipendenze dei maintainer |
npm-shrinkwrap.json | Pacchetto npm pubblicato | Grafo di installazione npm per gli utenti |
package-lock.json | App npm locali | Non è il contratto di pubblicazione di OpenClaw |
Perché OpenClaw lo usa
OpenClaw è un Gateway, host di Plugin, router di modelli e runtime di agenti. Un’installazione predefinita può influire sul tempo di avvio, sull’uso del disco, sui download di pacchetti nativi e sull’esposizione alla supply chain. Shrinkwrap offre alla revisione del rilascio un confine stabile:- i revisori possono vedere il movimento delle dipendenze transitive;
- i validatori dei pacchetti possono rifiutare derive inattese del lockfile;
- l’accettazione del pacchetto può testare le installazioni con il grafo che verrà distribuito;
- i pacchetti Plugin possono portare il proprio grafo delle dipendenze bloccato invece di fare affidamento sul pacchetto root per possedere le dipendenze solo del Plugin.
Dettagli tecnici
Il pacchetto npm rootopenclaw e i pacchetti Plugin npm di proprietà OpenClaw includono
npm-shrinkwrap.json quando vengono pubblicati. I pacchetti Plugin di proprietà OpenClaw idonei
possono anche essere pubblicati con bundledDependencies esplicite, così i file delle dipendenze
di runtime vengono trasportati nel tarball del Plugin invece di dipendere solo dalla
risoluzione in fase di installazione.
Mantieni il confine così:
pnpm-lock.yaml. Questo mantiene intatti
l’età delle dipendenze pnpm, gli override e il confine di revisione delle patch.
Usa i comandi solo root solo quando aggiorni intenzionalmente il pacchetto root
senza toccare i pacchetti Plugin:
pnpm-lock.yamlnpm-shrinkwrap.json- payload delle dipendenze dei Plugin in bundle
- qualsiasi diff di
package-lock.json
package-lock.json per i pacchetti OpenClaw pubblicati.
Per ispezionare un pacchetto root pubblicato: