pnpm-lock.yaml. Opublikowane pakiety npm OpenClaw używają npm-shrinkwrap.json, publikowalnego pliku blokady zależności npm, dzięki czemu instalacje pakietu używają grafu zależności sprawdzonego podczas wydania.
Prosta wersja
Shrinkwrap to potwierdzenie dla drzewa zależności dostarczanego z pakietem npm. Informuje npm, które dokładne wersje pakietów przechodnich zainstalować. W przypadku wydań OpenClaw oznacza to, że:- opublikowany pakiet nie prosi npm o tworzenie świeżego grafu zależności w czasie instalacji;
- zmiany zależności są łatwiejsze do przejrzenia, ponieważ pojawiają się w pliku blokady;
- walidacja wydania może testować ten sam graf, który zainstalują użytkownicy;
- niespodzianki związane z rozmiarem pakietu lub zależnościami natywnymi łatwiej wykryć przed publikacją.
openclaw security audit, pochodzenia pakietu ani testów dymnych instalacji.
Krótki model mentalny:
| Plik | Gdzie ma znaczenie | Co oznacza |
|---|---|---|
pnpm-lock.yaml | OpenClaw source checkout | Graf zależności maintainerów |
npm-shrinkwrap.json | Opublikowany pakiet npm | Graf instalacji npm dla użytkowników |
package-lock.json | Lokalne aplikacje npm | Nie jest kontraktem publikacji OpenClaw |
Dlaczego OpenClaw go używa
OpenClaw to gateway, host pluginów, router modeli i środowisko uruchomieniowe agentów. Domyślna instalacja może wpływać na czas uruchamiania, użycie dysku, pobieranie pakietów natywnych i ekspozycję łańcucha dostaw. Shrinkwrap daje przeglądowi wydania stabilną granicę:- recenzenci widzą ruch zależności przechodnich;
- walidatory pakietów mogą odrzucać nieoczekiwane odchylenia pliku blokady;
- akceptacja pakietu może testować instalacje z grafem, który zostanie dostarczony;
- pakiety pluginów mogą mieć własny zablokowany graf zależności zamiast polegać na tym, że pakiet główny posiada zależności używane tylko przez plugin.
Szczegóły techniczne
Główny pakiet npmopenclaw oraz należące do OpenClaw pakiety npm pluginów zawierają npm-shrinkwrap.json podczas publikacji. Odpowiednie należące do OpenClaw pakiety pluginów mogą też publikować z jawnymi bundledDependencies, dzięki czemu ich pliki zależności środowiska uruchomieniowego są przenoszone w archiwum tarball pluginu zamiast zależeć wyłącznie od rozwiązywania w czasie instalacji.
Utrzymuj tę granicę w ten sposób:
pnpm-lock.yaml. Dzięki temu granica wieku zależności pnpm, nadpisań i przeglądu poprawek pozostaje nienaruszona.
Używaj poleceń tylko dla pakietu głównego wyłącznie wtedy, gdy celowo odświeżasz pakiet główny bez dotykania pakietów pluginów:
pnpm-lock.yamlnpm-shrinkwrap.json- dołączone ładunki zależności pluginów
- dowolny diff
package-lock.json
package-lock.json dla opublikowanych pakietów OpenClaw.
Aby sprawdzić opublikowany pakiet główny: