pnpm-lock.yaml. Các gói npm OpenClaw đã xuất bản dùng npm-shrinkwrap.json, lockfile phụ thuộc có thể xuất bản của npm, để quá trình cài đặt gói dùng đồ thị phụ thuộc đã được xem xét trong quá trình phát hành.
Phiên bản dễ hiểu
Shrinkwrap là biên nhận cho cây phụ thuộc được phân phối cùng một gói npm. Nó cho npm biết chính xác các phiên bản gói bắc cầu nào cần cài đặt. Đối với các bản phát hành OpenClaw, điều đó có nghĩa là:- gói đã xuất bản không yêu cầu npm tự tạo một đồ thị phụ thuộc mới tại thời điểm cài đặt;
- các thay đổi phụ thuộc dễ xem xét hơn vì chúng xuất hiện trong lockfile;
- xác thực phát hành có thể kiểm thử đúng đồ thị mà người dùng sẽ cài đặt;
- các bất ngờ về kích thước gói hoặc phụ thuộc native dễ được phát hiện hơn trước khi xuất bản.
openclaw security audit, nguồn gốc gói, hoặc
kiểm thử smoke cài đặt.
Mô hình tư duy ngắn gọn:
| Tệp | Nơi nó quan trọng | Ý nghĩa |
|---|---|---|
pnpm-lock.yaml | Checkout mã nguồn OpenClaw | Đồ thị phụ thuộc của maintainer |
npm-shrinkwrap.json | Gói npm đã xuất bản | Đồ thị cài đặt npm cho người dùng |
package-lock.json | Ứng dụng npm cục bộ | Không phải hợp đồng xuất bản OpenClaw |
Vì sao OpenClaw dùng nó
OpenClaw là một Gateway, host Plugin, bộ định tuyến mô hình, và runtime agent. Một bản cài đặt mặc định có thể ảnh hưởng đến thời gian khởi động, dung lượng đĩa, tải xuống gói native, và mức độ phơi nhiễm chuỗi cung ứng. Shrinkwrap cung cấp cho quá trình xem xét phát hành một ranh giới ổn định:- reviewer có thể thấy chuyển động của phụ thuộc bắc cầu;
- trình xác thực gói có thể từ chối độ lệch lockfile ngoài dự kiến;
- chấp nhận gói có thể kiểm thử cài đặt với đồ thị sẽ được phân phối;
- các gói Plugin có thể mang theo đồ thị phụ thuộc đã khóa riêng thay vì dựa vào gói gốc để sở hữu các phụ thuộc chỉ dành cho Plugin.
Chi tiết kỹ thuật
Gói npm gốcopenclaw và các gói npm Plugin do OpenClaw sở hữu bao gồm
npm-shrinkwrap.json khi chúng xuất bản. Các gói Plugin phù hợp do OpenClaw sở hữu
cũng có thể xuất bản với bundledDependencies tường minh, để các tệp phụ thuộc
runtime của chúng được mang trong tarball Plugin thay vì chỉ phụ thuộc vào
phân giải tại thời điểm cài đặt.
Duy trì ranh giới như sau:
pnpm-lock.yaml. Điều đó giữ nguyên
ranh giới tuổi phụ thuộc, override, và xem xét patch của pnpm.
Chỉ dùng các lệnh chỉ dành cho gốc khi cố ý làm mới gói gốc
mà không chạm vào các gói Plugin:
pnpm-lock.yamlnpm-shrinkwrap.json- payload phụ thuộc Plugin được bundle
- bất kỳ diff
package-lock.jsonnào
package-lock.json đối với các gói OpenClaw đã xuất bản.
Để kiểm tra một gói gốc đã xuất bản: