Khi bạn chạy
npm update
Nó sẽ cập nhật phụ thuộc để tuân package.json và sẽ không quan tâm những gì được lưu trữ trong npm-shrinkwrap.json
ngay cả khi node_modules
thư mục rỗng có nghĩa là cập nhật lệnh sẽ cài đặt sử dụng package.json
trong khi cài đặt lệnh sẽ sử dụng npm-shrinkwrap.json
.
Nó không thực hiện bất kỳ ý nghĩa để tuân theo các tập tin shrinkwrap [trong hầu hết các trường hợp.]
Lý do
Nó được coi là một bản chụp của gói tại một số điểm ổn định và điều này làm cho nó hoàn hảo cho mã sản xuất.
Không có ^
, ~
, latest
vv trong tệp shrinkwrap.
- Và chúng tôi cũng biết rằng tập tin shrinkwrap không phải được can thiệp bằng tay sử dụng biên tập
- Vì vậy, tất cả chúng ta có thể làm là quay trở lại một số trạng thái trước đó phụ thuộc sử dụng lệnh này và điều này có thể đạt được bằng NPM cài đặt
Tuy nhiên khi bạn chạy
npm install
Nó sau tập shrinkwrap.
Nhưng khi bạn chạy
npm install newPkg --save
Nó sẽ thay đổi cả package.json
và npm-shrinkwrap.json
tập tin cũng
Nhưng khi bạn chạy
npm update pkg --save
Nó sẽ thay đổi chỉ npm-shrinkwrap.json
tập tin và như tôi đã viết trước khi nó sẽ sử dụng package.json
tệp để cập nhật theo semver