— — — تحليل ومقارنة والتحقق من نطاق الإصدارات الدلالية — يدعم ^ و ~ و >= و < ونطاقات x و ||.
لا يتم جلب الروابط البعيدة؛ الصق JSON مباشرة.
— — — — — الإصدار الدلاليّ (SemVer) اصطلاح major.minor.patch الذي تستخدمه معظم المكتبات للإشارة إلى نوع التغيير في إصدار: إصلاح ثُغرة يرفع patch، والإضافات المتوافقة مع الخلف ترفع minor، والتغييرات الكاسرة ترفع major. أضِف وسمَ ما قبل الإصدار (1.0.0-beta.1) أو بيانات البناء الوصفية (+exp.sha.1) فتحصل على القواعد الكاملة المُعرَّفة في semver.org 2.0.0.
المشكلة أنّ «قارن إصدارَين» و«هل يُرضي هذا الإصدار نطاق تبعيتي» يسهل الخطأ فيهما بالعين. هل 1.0.0 أعلى أمأدنى من 1.0.0-beta؟ (أعلى — فالإصدار يفوق ما قبل إصداره دائمًا.) هل يُرضي 1.2.3 الشرط ^1.2.0؟ (نعم.) هل يُرضي ~1.2.0؟ (نعم أيضًا، لكن لسببٍ أمكر.) تُحلِّل هذه الصفحة الإصدارات كما تُعرِّفها المواصفة، وتُريك المكوّنات، وتقارن إصدارَين بالأسبقية، وتُجيب عن استعلامات النطاق بالصيغة ^ / ~ / >= / || / الواصلة نفسها التي يستخدمها package.json — كلّ ذلك محليًّا، وفق القواعد الحقيقية لا تخمينًا.
v أو= وتُزال؛ ويُحلَّل 1.2.3-beta.1+build.42 إلى أجزائه.^1.2.0 || >=2.0.0 <3.0.0 — مجموعتا OR، كما تُكتب نطاقات التبعية الحقيقية. الصيغ المدعومة: ^ (caret)، ~ (تيلدة)، >= <= > < =، البدل x / X / *، الإصدارات الجزئية (1.2)، نطاقات الواصلة -، و|| لـ OR بين المجموعات.clean والحقول المُفرَّقة major وminor وpatch وprerelease وbuild. والإصدار غير الصالح يحوّل بطاقته حمراء مع رسالة.A < B أوA = B أوA > B بالأسبقية، بالإضافة إلى diff — أعلى مكوّن تغيّر (major أوminor أوpatch أوprerelease أوbuild).major.minor.patch ثمّ مُعرِّفات ما قبل الإصدار، مع القاعدة أنّ إصدارًا بلا ما قبل إصدار يفوق دائمًا واحدًا به. المعرِّفات الرقمية تُقارَن رقميًّا (beta.2 < beta.11)؛ والأبجدية الرقمية تُقارَن معجميًّا؛ والرقميّ دائمًا أدنى من الأبجديّ الرقميّ. metadata البناء تُحلَّل وتُعرَض لكنها لا تُؤثّر في الأسبقية أبدًا.^ والتيلدة، مُزالَتا السكر بشكل صحيح. يُصبح ^1.2.3 هو >=1.2.3 <2.0.0؛ و^0.2.3 هو >=0.2.3 <0.3.0؛ و^0.0.3 هو >=0.0.3 <0.0.4 — قاعدة الـ caret «أبعد غير صفريّ يسارًا». والتيلدة تُثبّت minor نفسها: ~1.2.3 هي >=1.2.3 <1.3.0.|| والواصلات والبدائل. ^1.0.0 || >=2.0.0 <3.0.0 (OR لمجموعتَين)، و1.2.0 - 1.5.0 (نطاق واصلة شامل)، و1.x / 1.2.* (نطاقات بديلة) كلّها تُحلَّل وتُفحَص.major.minor.patch نفسها. فـ 1.5.0-rc.1 لا يُرضي ^1.2.0، لكنه يُرضي ^1.5.0-rc.0 — مطابقاً لكيفية إبقاء مديري الحزم الحقيقيّين ما قبل الإصدارات العشوائية خارج بناءات إصدارك.1.2.3 إلى 2.0.0 تُظهر major، ومن 1.0.0 إلى 1.0.0 مع بناء متغيّر تُظهر build رغم أنّ الأسبقية لم تتغيّر.v البادئة، و= البادئة، والفراغ المحيط، فتُحلَّل الإصدارات المنسوخة من وسم git أوسجلّ تغييرات دون تنظيف يدويّ.بالافتراضات — A 1.2.3 وB 2.0.0 والنطاق ^1.2.0 || >=2.0.0 <3.0.0 — تُبلّغ الصفحة:
A clean 1.2.3 (major 1, minor 2, patch 3)
B clean 2.0.0 (major 2, minor 0, patch 0)
compare 1.2.3 < 2.0.0
diff major
range A satisfies B satisfies
كلّ إصدارٍ يُرضي النطاق، لكن لأسباب مختلفة: A يقع داخل مجموعة OR الأولى (^1.2.0 → >=1.2.0 <2.0.0)، وB يقع داخل الثانية (>=2.0.0 <3.0.0). غيّر B إلى 3.0.0 فتقلب شارته إلى not satisfies — الحدّ الأعلى <3.0.0 يستثنيها.
لرؤية قاعدة ما قبل الإصدار في العمل، اضبط A على 1.5.0-rc.1 وB على 1.5.0، وابقِ النطاق ^1.5.0-rc.0. الآن A يُرضي (الـ 1.5.0 نفسها، النطاق يحمل وسمَ ما قبل إصدار مطابق)، بينما ^1.5.0 المجرّد لن يُمرِّر 1.5.0-rc.1 — البابة موجودة بالضبط لإبقاء مرشحي الإصدار خارج حلّ تبعيات الإصدار حتى تشترك.
1.0.0 أعلى من 1.0.0-beta؟#نعم. الإصدار بلا وسم ما قبل إصدار تكون أسبقيّته دائمًا أعلى من واحدٍ بوسم ما قبل إصدار، حتى عند major.minor.patch نفسها. فـ 1.0.0 > 1.0.0-rc.1 > 1.0.0-beta.11 > 1.0.0-alpha. ولهذا فإنّ إصدارًا «يبلغ الذهبيّ» قفزة أسبقية حقيقية، لا مجرّد تغيير وسم.
^ و~؟#رمز الـ caret يسمح بالتحديثات التي لا تُعدِّل المكوّن غير الصفريّ الأبعد يسارًا: ^1.2.3 يسمح بأيّ 1.x.x من 1.2.3 حتى (دون إشراك) 2.0.0. والتيلدة أمصر — تُثبّت minor عند إعطائها إصدارًا كاملًا: ~1.2.3 يسمح فقط بـ 1.2.x. وعند إعطائها major فقط (~1)، فالتيلدة والرمز ^ معًا يسمحان بمجال major الكامل. معظم المكتبات تُثبّت بـ ^؛ ورفع إصدار الحزمة المنشورة نفسها كثيرًا ما يستخدم ~.
^1.0.0؟#بالتصميم. لا يُرضي ما قبل إصدارٍ مثل 1.5.0-rc.1 نطاقًا إلا حين يكون لمقارِنٍ ما في مجموعة AND نفسها وسم ما قبل إصدار على 1.5.0 نفسها. و^1.0.0 يُزال سكره إلى >=1.0.0 <2.0.0-0 بلا ما قبل إصدار على 1.5.0، فتبقي البابة بناء إصدارك من سحب مرشّح إصدارٍ عشوائيّ لأحد. وإن أردت الاشتراك فاكتب ^1.5.0-rc.0 صراحةً.
لا. 1.0.0+exp.sha.5 و1.0.0+exp.sha.6 لهما أسبقية متساوية — metadata البناء للتعريف فقط. يُظهرها المُحلِّل مع ذلك (ويُبلّغ diff عن تغيّر build حين لا يختلف سواه)، لكنها لا تُقرّر ترتيبًا قطّ.
زوار فريدون (يُحتسب هذا الجهاز/المتصفح مرة واحدة فقط)
يعرض هذا الموقع الإعلانات عبر Google AdSense. نستخدم ملفات تعريف الارتباط لقياس الإعلانات وتخصيصها. اختر ما إذا كنت تريد السماح بالإعلانات المخصصة.