pnpm-lock.yaml. Opublikowane pakiety npm OpenClaw używają pliku npm-shrinkwrap.json, czyli przeznaczonego do publikacji pliku blokady zależności npm, dzięki czemu instalacje pakietów korzystają z grafu zależności sprawdzonego podczas wydania.
Dlaczego to ważne
Shrinkwrap jest potwierdzeniem drzewa zależności dostarczanego z pakietem npm: wskazuje npm, które dokładne wersje zależności przechodnich należy zainstalować.
W przypadku wydań OpenClaw oznacza to, że:
- opublikowany pakiet nie wymaga od npm tworzenia nowego grafu zależności podczas instalacji;
- zmiany zależności można przeglądać, ponieważ trafiają do różnic w pliku blokady;
- podczas weryfikacji wydania testowany jest ten sam graf, który zainstalują użytkownicy;
- niespodziewane zmiany rozmiaru pakietu lub zależności natywnych ujawniają się przed publikacją.
openclaw security audit, pochodzenia pakietów ani testów dymnych instalacji.
OpenClaw pełni funkcję Gateway, hosta pluginów, routera modeli i środowiska uruchomieniowego agentów, dlatego domyślna instalacja wpływa na czas uruchamiania, wykorzystanie miejsca na dysku, pobieranie pakietów natywnych i narażenie łańcucha dostaw. Shrinkwrap zapewnia stabilną granicę podczas przeglądu wydania: recenzenci widzą zmiany zależności przechodnich, walidatory odrzucają nieoczekiwane rozbieżności pliku blokady, a pakiety pluginów zawierają własny zablokowany graf zależności zamiast polegać na pakiecie głównym.
Generowanie i sprawdzanie
Główny pakiet npmopenclaw, należące do OpenClaw pakiety pluginów npm (na przykład @openclaw/discord) oraz przeznaczone do publikacji pakiety obszaru roboczego, takie jak @openclaw/ai, podczas publikacji zawierają plik npm-shrinkwrap.json. Zależności obszaru roboczego są pomijane w głównym pliku shrinkwrap, ponieważ są publikowane razem z pakietem głównym; zamiast tego każdy przeznaczony do publikacji pakiet obszaru roboczego przypina własne drzewo zależności przechodnich. Odpowiednie pakiety pluginów mogą być również publikowane z jawną konfiguracją bundledDependencies, która umieszcza pliki zależności środowiska uruchomieniowego w archiwum pluginu, zamiast polegać wyłącznie na rozwiązywaniu zależności podczas instalacji.
pnpm-lock.yaml. Pozwala to zachować granicę przeglądu wieku zależności pnpm, nadpisań i poprawek.
Następujące elementy należy przeglądać jako istotne dla bezpieczeństwa:
pnpm-lock.yamlnpm-shrinkwrap.json- dołączone zestawy zależności pluginów
- wszelkie różnice w pliku
package-lock.json
package-lock.json w publikowanych pakietach. Ścieżka publikowania pluginów w npm sprawdza lokalny dla pluginu plik shrinkwrap, instaluje dołączone zależności lokalne dla pakietu, a następnie pakuje lub publikuje pakiet.