TGViewer
</ MoDev > </ MoDev > @programming_codiing · 479 subscribers
Post #419 501
احتمالاً موقع نصب یه پکیج دیدید که نسخه‌ش مثلاً اینه: 3.7.2

ولی این سه تا عدد دقیقاً چی می‌گن؟
این سیستم اسمش Semantic Versioning یا SemVerـه و شکل کلیش اینه :

MAJOR.MINOR.PATCH

مثلاً:
3.7.2
یعنی:
3 → MAJOR
7 → MINOR
2 → PATCH

حالا قسمت جذابش اینجاست
MAJOR — تغییرات بزرگ و Breaking
وقتی نسخه Major تغییر می‌کنه، ممکنه چیزهایی که قبلاً توی پروژه‌ات کار می‌کردن، دیگه کار نکنن.
مثلاً:
2.4.1 → 3.0.0
فرض کن قبلاً این API رو داشتی:
getUser(id)
ولی توی نسخه جدید تبدیل شده به:
getUser({ id })
کدت ممکنه بشکنه؛ چون API قبلی تغییر کرده.
پس:
Major = احتمال Breaking Change
MINOR — قابلیت جدید، بدون شکستن قبلی‌ها
مثلاً:
3.7.2 → 3.8.0
یک قابلیت جدید اضافه شده، ولی قرار نیست قابلیت‌های قبلی خراب بشن.
مثلاً:
getUser()
همچنان کار می‌کنه و فقط قابلیت جدیدی مثل:
getUsers()
اضافه شده.
پس:
Minor = Feature جدید + سازگاری با قبلی
PATCH — رفع باگ
مثلاً:
3.7.2 → 3.7.3
اینجا معمولاً قابلیت جدیدی اضافه نشده؛ فقط باگ‌ها و مشکلات نسخه قبلی برطرف شدن.
مثلاً:
نسخه قبلی:
calculateTotal()
گاهی مبلغ اشتباه برمی‌گردوند.
در نسخه جدید این باگ Fix شده.
پس:
Patch = Bug Fix
حالا یه مثال واقعی‌تر
فرض کن نسخه پکیجت اینه:
1.4.2
بعد:
1.4.3 → یک باگ Fix شده.
1.5.0 → یک قابلیت جدید اضافه شده.
2.0.0 → تغییر بزرگی اتفاق افتاده که ممکنه نیاز به تغییر کدت داشته باشه.
پس فقط با نگاه کردن به نسخه می‌تونی بفهمی تقریباً چه نوع تغییری اتفاق افتاده.
اما یه نکته مهم درباره npm
وقتی توی package.json می‌نویسی:
"react": "^19.0.0"
این ^ مهمه.
یا مثلاً:
"lodash": "~4.17.21"
این علامت‌ها مشخص می‌کنن چه نسخه‌هایی اجازه دارن نصب بشن.
به زبان ساده:
^ → معمولاً Minor و Patch را اجازه می‌دهد.
~ → معمولاً فقط Patch را اجازه می‌دهد.
مثلاً:
^1.4.2

1.4.3 ✅
1.5.0 ✅
1.9.9 ✅
2.0.0 ❌
و:
~1.4.2

1.4.3 ✅
1.4.9 ✅
1.5.0 ❌


خلاصه:
1.4.2
│ │ │
│ │ └── PATCH → رفع باگ
│ └──── MINOR → قابلیت جدید
└────── MAJOR → تغییرات ناسازگار


@programming_codiing
  • ❤ 9
More from @programming_codiing
  1. Oct 14, 2026بعضی موقع یه چیزی که اسمش رو کمال‌گرایی می‌ذاریم، در واقع ترس از قضاوت شدنه. پروژه رو تموم…
  2. Oct 13, 2026هر چیزی که منتشر می‌کنید، لزوماً محتوای خوبی نیست. فرض کنید دو نفر درباره‌ی جاوااسکریپت مح…
  3. Oct 12, 2026«هر احمقی می‌تواند کدی بنویسد که کامپیوتر بفهمد؛ برنامه‌نویس خوب کدی می‌نویسد که انسان‌ها…
  4. Oct 11, 2026پیشرفت، همیشه قابل دیدن نیست.. @programming_codiing
  5. Oct 10, 2026اینجور سایت های باحال : فقط ویدیو و عکس هست ولی با منطق درست برای نمایش، چیز سختی هم نیست.…
  6. Oct 8, 2026بعد جاوااسکریپت حتما تایپ‌اسکریپت رو قدم بعدی تون قرار بدید. چیز سختی نیست و زمان زیادی هم…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →