اختبر الإصدارات مقابل نطاق npm مثل ^1.2.3 ورتّبها واعرف الإصدار التالي
يعمل في متصفحك. لا يُرسل أي شيء تكتبه إلى أي مكان. تم التحقق في 16 أكتوبر 2026.يحدد نطاق semver الإصدارات التي تقبلها الحزمة. في npm، يعني ^1.2.3 الإصدار 1.2.3 على الأقل وأقل من 2.0.0، بينما يتوقف ~1.2.3 قبل 1.3.0. تحت الإصدار 1 تكون علامة الإقحام أكثر تشددًا، فيتوقف ^0.2.3 قبل 0.3.0. والإصدار التجريبي مثل 1.3.0-beta لا يطابق إلا نطاقًا يذكر إصدارًا تجريبيًا من 1.3.0.
تُرجمت هذه الصفحة آليًا من الأصل الإنجليزي. لم يراجع أي شخص هذه الترجمة بعد، لذا فالنسخة الإنجليزية هي التي يُعتمد عليها. اقرأ الأصل الإنجليزي
اكتب النطاق من package.json، مثل ^1.2.3 أو >=18 <21، في حقل النطاق.
الصق الإصدارات المراد اختبارها، إصدارًا في كل سطر، أو انقر على جرّب مثالًا.
اقرأ القائمة: كل إصدار معلَّم بأنه مطابق أو غير مطابق، مرتب من الأدنى إلى الأعلى، مع ذكر أعلى إصدار مطابق.
انقر على نسخ لأخذ القائمة المرتبة، أو على نسخ المطابِقة لأخذ الإصدارات الواقعة في النطاق فقط.
يكتب Semantic Versioning الإصدار بالصيغة MAJOR.MINOR.PATCH: قد يكسر التغيير الرئيسي الشيفرة التي تستخدمه، ويضيف التغيير الثانوي ميزات، ولا يفعل التصحيح سوى إصلاح الأخطاء. وتعتمد مديرات الحزم على هذا الوعد حين تقرأ نطاقًا مثل ^1.2.3 في package.json وتختار أحدث إصدار يناسبه.
اكتب نطاقًا والصق الإصدارات، إصدارًا في كل سطر. يُعلَّم كل إصدار بأنه داخل النطاق أو خارجه، وتُرتَّب القائمة بترتيب الإصدارات الحقيقي، ويُذكر أعلى إصدار مطابق وأدناه. ويُكتب النطاق أيضًا في صورة مقارنات بسيطة، تمامًا كما يطبعه npm، فيظهر ^0.2.3 على أنه >=0.2.3 <0.3.0-0.
| النطاق | المعنى | مثال مطابق |
|---|---|---|
^1.2.3 |
>=1.2.3 <2.0.0 | 1.9.4 |
^0.2.3 |
>=0.2.3 <0.3.0 | 0.2.9 |
~1.2.3 |
>=1.2.3 <1.3.0 | 1.2.10 |
1.x |
>=1.0.0 <2.0.0 | 1.4.0 |
1.2.3 - 2.3 |
>=1.2.3 <2.4.0 | 2.3.9 |
>=18 <21 |
من 18.0.0 حتى ما دون 21.0.0 | 20.11.1 |
الترتيب. تُقارَن الأرقام بوصفها أرقامًا، لذا فإن 1.10.0 أحدث من 1.9.0. ويأتي الإصدار التجريبي قبل إصداره النهائي: 2.0.0-rc.1 يسبق 2.0.0. وداخل الإصدار التجريبي تُقارَن الأجزاء الرقمية عدديًا وتأتي قبل الكلمات، لذا فإن beta.2 أدنى من beta.11 و1 أدنى من alpha. ولا تغيّر بيانات البناء الوصفية بعد علامة الجمع الترتيب أبدًا.
شرح الأخطاء. السطر الذي ليس إصدارًا يوضح السبب: ينقص 1.2 رقمُ التصحيح، و01.2.3 فيه صفر بادئ، و1.2.3.4 فيه جزء زائد. وحين يكون الإصلاح واضحًا يُقترح.
الإصدارات التالية. لأعلى إصدار في القائمة تُعرض الإصدارات التالية الرئيسية والثانوية والتصحيحية والتجريبية، كما سيكتبها الأمر npm version.
كل إجابة مُتحقَّق منها مقابل node-semver، المكتبة التي يستخدمها npm نفسه، عبر أكثر من 3,000 مقارنة و100 نطاق. كل شيء يعمل في متصفحك؛ ولا يُرسَل أي شيء تلصقه إلى أي مكان.
تسمح التلدة بتحديثات التصحيح فقط: ~1.2.3 يقبل 1.2.4 و1.2.10 لكن ليس 1.3.0. وتسمح علامة الإقحام أيضًا بالتحديثات الثانوية: ^1.2.3 يقبل كل ما هو أقل من 2.0.0. وبما أن npm يكتب علامة الإقحام افتراضيًا، فإن معظم المشاريع تتلقى الميزات الجديدة تلقائيًا ولا تتوقف إلا عند الإصدار الرئيسي التالي.
تحت 1.0.0 يعامل npm أول رقم غير صفري على أنه الإصدار الرئيسي، لأن واجهة API لم تستقر بعد. لذا يعني ^0.2.3 الإصدار 0.2.3 على الأقل وأقل من 0.3.0، ولا يسمح ^0.0.3 إلا بالإصدار 0.0.3 نفسه. ونقل الحزمة إلى 1.0.0 هو ما يفعّل نطاق علامة الإقحام الأوسع.
نعم. يُقارَن كل جزء من الإصدار الدلالي بوصفه عددًا صحيحًا، لذا فإن الإصدار الثانوي 10 أكبر من 9. أما فرز أرقام الإصدارات كنص، أو قراءتها كأعداد عشرية، فيضع 1.10.0 قبل 1.9.0، وهذا خطأ. الصق الاثنين هنا لترى الترتيب الصحيح والجزء المختلف.
لا. لا يطابق الإصدار التجريبي إلا نطاقًا يذكر إصدارًا تجريبيًا بالأرقام الرئيسية والثانوية والتصحيحية نفسها. لذا يطابق 1.3.0-beta النطاق >=1.3.0-alpha لكنه لا يطابق ^1.2.3، رغم أنه يقع داخل ذلك النطاق في الترتيب. وتبقى الإصدارات التجريبية خارج عمليات التثبيت العادية ما لم تطلبها.
يأتي الإصدار التجريبي قبل إصداره النهائي، لذا فإن 1.0.0-rc.1 أقدم من 1.0.0. وتُقارَن أجزاء الإصدار التجريبي جزءًا جزءًا، مفصولة بنقاط: الأرقام عدديًا، والكلمات أبجديًا، والأرقام قبل الكلمات. والترتيب المثالي في Semantic Versioning هو alpha، alpha.1، alpha.beta، beta، beta.2، beta.11، rc.1، ثم الإصدار النهائي.
كل ما يأتي بعد علامة الجمع هو بيانات بناء وصفية، مثل 1.0.0+20261016 أو 1.0.0+sha.5114f85. تحدد بيانات البناء الوصفية بناءً معينًا لكنها تُتجاهل في الترتيب، لذا يُعد 1.0.0+a و1.0.0+b الإصدار نفسه. وتتجاهلها النطاقات أيضًا، ويحذفها npm عند طباعة النطاق.
تتغير المعدلات والقواعد؛ راجع المصدر قبل الاعتماد على أي رقم.
هل ما زلت عالقًا؟ اسأل عن مدقق semver ويمكن لأي شخص يعرف الإجابة أن يجيب. لا حاجة إلى حساب.