SemVer ভ্যালিডেটর
সেমান্টিক ভার্সন যাচাই করুন ও রেঞ্জ পার্স করুন।
ভার্সন
- MAJOR
- MINOR
- PATCH
- প্রিরিলিজ
- বিল্ড মেটাডেটা
রেঞ্জ
JSON ফলাফল
কী একটি ভার্সন হিসেবে গণ্য
কঠোর SemVer 2.0.0 ব্যাকরণ। তিনটি সংখ্যাই অ-ঋণাত্মক ASCII পূর্ণসংখ্যা, শুরুর শূন্য ছাড়া।
- MAJOR.MINOR.PATCH
- ভাঙনকারী / সামঞ্জস্যপূর্ণ / সংশোধিত
- 1.2.3-alpha.1
- প্রিরিলিজ, 1.2.3-এর নিচে
- 1.2.3+build.5
- বিল্ড মেটাডেটা, অগ্রাধিকারে উপেক্ষিত
- 1.2.3-0.3
- সংখ্যাভিত্তিক প্রিরিলিজ আইডেন্টিফায়ার সংখ্যা হিসেবে তুলনা হয়
- v1.2.3
- সেমান্টিক ভার্সন নয় (স্পেক FAQ)
- 01.2.3
- বৈধ নয়: শুরুর শূন্য
- 1.2.3-01
- বৈধ নয়: শূন্য দিয়ে প্যাড করা সংখ্যাভিত্তিক প্রিরিলিজ
- 1.2.3+0.09
- বৈধ: বিল্ড মেটাডেটায় শূন্য প্যাড চলতে পারে
রেঞ্জ অপারেটর
- 1.2.3
- ঠিক এই ভার্সন
- ^1.2.3
- সামঞ্জস্যপূর্ণ: >=1.2.3 <2.0.0-0
- ~1.2.3
- শুধু প্যাচ: >=1.2.3 <1.3.0-0
- >=1.2.3 <2.0.0
- এক সেটে তুলনাকারীদের AND
- 1.2.3 - 2.0.0
- অন্তর্ভুক্তিমূলক রেঞ্জ, দুই পাশে স্পেস আবশ্যক
- 1.2.x / 1.x / *
- আংশিক ভার্সন ও ওয়াইল্ডকার্ড
- a || b
- সংযোগ: যেকোনো সেট মিলতে পারে
- ~>1.2.3
- npm ঐতিহাসিক উপনাম, ~1.2.3 হিসেবে সামলানো হয়
npm কীভাবে আংশিক ভার্সন পূরণ করে
node-semver-এর সঙ্গে যাচাই করা; -0 প্রত্যয় হলো npm সেন্টিনেল, যা পরবর্তী সিরিজের প্রিরিলিজ বাদ দেয়।
| রেঞ্জ | সম্প্রসারিত |
|---|---|
| ^1.2.3 | >=1.2.3 <2.0.0-0 |
| ^0.2.3 | >=0.2.3 <0.3.0-0 |
| ^0.0.3 | >=0.0.3 <0.0.4-0 |
| ^1 | >=1.0.0 <2.0.0-0 |
| ~1.2.3 | >=1.2.3 <1.3.0-0 |
| ~1.2 | >=1.2.0 <1.3.0-0 |
| ~1 | >=1.0.0 <2.0.0-0 |
| 1.2.x | >=1.2.0 <1.3.0-0 |
| 1.x | >=1.0.0 <2.0.0-0 |
| 1.2.3 - 2.0.0 | >=1.2.3 <=2.0.0 |
| 1.2.3 - 2 | >=1.2.3 <3.0.0-0 |
| >1.x | >=2.0.0 |
প্রিরিলিজের অগ্রাধিকার
1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0
সংখ্যাভিত্তিক আইডেন্টিফায়ার সংখ্যা হিসেবে তুলনা হয় এবং আলফানিউমেরিকের নিচে থাকে; ছোট প্রিফিক্স নিচে থাকে। বিল্ড মেটাডেটা কখনো গুরুত্বপূর্ণ নয়।
সাধারণ ভুল
এগুলো package.json ও চ্যাট লগ থেকে সোজা পেস্ট করা।
- "1.2.3",
- package.json থেকে কোট ও কমা সঙ্গে এসেছে - শুধু ভার্সন পেস্ট করুন।
- v1.2.3
- Git ট্যাগে v থাকে, সেমান্টিক ভার্সনে থাকে না।
- 1.2
- দুটি সংখ্যা একটি রেঞ্জ, ভার্সন নয়।
- 1.2.3-01
- npm loose মোড এটি 1.2.3-1 হিসেবে পড়ে এবং নীরবে নতুন করে লেখে।
কোন নিয়ম বই ব্যবহৃত হয়
- ভার্সন স্ট্রিংয়ের রায় কঠোর SemVer 2.0.0 - কোনো loose মোড নেই, নতুন করে লেখা নেই, স্বাভাবিক করাও নেই।
- রেঞ্জ npm node-semver অনুসরণ করে, কারণ SemVer স্পেক রেঞ্জ সংজ্ঞায়িত করে না।
- রেঞ্জে এই টুল npm-এর চেয়ে কঠোর: রেঞ্জের ভিতরে v প্রিফিক্স বা শুরুর শূন্য গ্রহণ করা হয় না, আর ||-এর খালি পাশ "যেকোনো ভার্সন" নয়, ত্রুটি।
- অবৈধ ভার্সনের জন্য দেখানো npm পাঠ semver.valid(v, {loose:true}) ও semver.coerce(v) থেকে আসে। এগুলো কেবল তথ্য - কখনো পাস নয়।
- অবস্থান কোড পয়েন্ট গণনা করে এবং ইন্টারফেসে 1 থেকে, JSON-এ 0 থেকে শুরু হয়।
কীভাবে ব্যবহার করবেন
- বাঁ দিকের ফিল্ডে 1.2.3-beta.1+build.5-এর মতো একটি ভার্সন পেস্ট করুন। নিচের সব কিছু টাইপ করার সঙ্গে আপডেট হয় - চাপার কোনো বোতাম নেই।
- ঐচ্ছিকভাবে ডান দিকে ^1.2.0-এর মতো একটি npm রেঞ্জ পেস্ট করে দেখুন ভার্সন ও রেঞ্জের সম্পর্ক কী।
- আগে ব্যাজ পড়ুন: বৈধ কি না, আর না হলে কোন নিয়ম কোন অক্ষরে ভেঙেছে।
- রেঞ্জের npm includePrerelease পাঠ চাইলে “প্রিরিলিজ যোগ করুন” টিক দিন।
- সম্পূর্ণ সমস্যার তালিকা কপি বা ডাউনলোড করতে JSON ফলাফল খুলুন।
সমাধান করা উদাহরণ
ভার্সন + রেঞ্জ
1.2.3-beta.1+build.5 ^1.2.0
ফলাফল
বৈধ SemVer (MAJOR 1, MINOR 2, PATCH 3, প্রিরিলিজ beta.1, বিল্ড build.5)। ^1.2.0 সম্প্রসারিত হয় >=1.2.0 <2.0.0-0, সীমা [1.2.0, 2.0.0)। রায়: সন্তুষ্ট নয় - 1.2.3-এর জন্য সেটে কোনো প্রিরিলিজ তুলনাকারী নেই।
“প্রিরিলিজ যোগ করুন” টিক দিলে একই জোড়া সন্তুষ্ট হয়ে যায়।
সীমাবদ্ধতা
- রায় কঠোর SemVer 2.0.0, তাই v1.2.3 ও 1.2.3-01 গ্রহণ করা হয় না, যদিও npm loose মোড সেগুলো গ্রহণ বা নতুন করে লেখে।
- রেঞ্জ কেবল npm node-semver অনুসরণ করে - git describe, Cargo, PEP 440 ও Go মডিউল ভার্সন এর পরিসরে নেই।
- রেজিস্ট্রি লুকআপ নেই: ^1.2.0 আসলে কোন ভার্সন ইনস্টল করবে তা এই টুল বলতে পারে না।
- একসঙ্গে একটি ভার্সন ও একটি রেঞ্জ - ব্যাচ তালিকা, সাজানো, জোড়ায় তুলনা বা বাম্প প্রিভিউ নেই।
- Number.MAX_SAFE_INTEGER-এর বেশি মূল সংখ্যা চিহ্নিত হয় এবং টেক্সট হিসেবে তুলনা হয়, কখনো JS সংখ্যায় রূপান্তরিত হয় না।
- কিছুই পেজ ছাড়ে না: নেটওয়ার্ক নেই, স্টোরেজ নেই, URL প্যারামিটার নেই - রিলোড করলে সব মুছে যায়।
সম্পর্কিত টুল
আরও ডেভেলপার সহায়ক, যা সম্পূর্ণভাবে আপনার ব্রাউজারে চলে।