توی برنامه های جاوااسکریپتی یه فایلی داریم به اسم package-lock.json که هدفش حفظ سازگاری بین نسخه های برنامست که توی جاهای مختلف نصب می شن
توی فایل هایی جاوااسکریپتی که نوشتین حتما این فایل رو دیدین package-lock.json معمولا بدون اینکه بدونیم خیلی به کارمون میاد
این فایل وقتی توی محیط های متفاوت اجرا می شه باعث رفتار و خروجی پایدار و قابل پیش بینی می شه
حواستون باشه این فایله رو با package.json اشتباه نگیرید ...
محتویات package.json در اصل مشخصات همون پکیج هایی هست که توی پروژه نصب کردید (البته یکم خلاصه تر)
این نمونه ای از فایل package.json هست
{ "name": "my-app", "dependencies": { "react": "^17.0.0" } }
فایل package-lock.json به صورت خودکار توسط ابزار های مدیریت پکیج مثل npm درست می شه و ورژن دقیق پکیج های نصب شده داخلش قرار داره و علاوه بر اینا جزئیاتی مثل ادرس URL که از اون پکیج رو دانلود کردید هم ذخیره می کنه که دیگه به مشکل ناسازگاری هم نخورین
این یه نمونه از فایل package-lock.json :
{ "name": "my-app", "lockfileVersion": 1, "dependencies": { "react": { "version": "17.2.0", "resolved": "https://registry.npmjs.org/react/-/react-17.2.0.tgz", "integrity": "sha512-..." // additional package information } } }
خوب همین طور که دیدید تفاوتش واضحه ...
اگه توی پروژه ای package-lock.json وجود نداشته باشه با دستور npm install این فایل به صورت خودکار درست می شه و با اضافه کردن یه پکیج فایل به صورت خودکار اپدیت می شه پس برای صلاح خودتون هم شده بهش دست نزنید -_-
امیداورم از این اطلاعات نهایت استفاده رو کرده باشید اگه متن یا توضیحات مشکلی داشت بهم بگید
منبع : ditty