Omnikit
المطورونالملفاتالمالجميع الأدوات
Ctrl K
أدوات المطورينأدوات الملفاتالحاسبات الماليةجميع الأدوات
الرئيسيةأدوات المطورينمدقق package.json
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

مدقق package.json

مطورون

افحص ملف package.json كما يقرؤه npm: الاسم والإصدار والترخيص والاعتماديات والصياغة

يعمل في متصفحك. لا يُرسل أي شيء تكتبه إلى أي مكان. تم التحقق في 16 أكتوبر 2026.

يفحص مدقق package.json الملف الذي يقرؤه npm قبل تثبيت حزمة أو نشرها. الصق الملف لترى أخطاء صياغة JSON مع سطرها، والتحذيرات الدقيقة التي يطبعها npm، وما إذا كان الاسم مسموحًا، وما إذا كان الترخيص أحد معرّفات SPDX البالغ عددها 734، وإصدارات الاعتماديات التي ليست نطاقات حقيقية.

تُرجمت هذه الصفحة آليًا من الأصل الإنجليزي. لم يراجع أي شخص هذه الترجمة بعد، لذا فالنسخة الإنجليزية هي التي يُعتمد عليها. اقرأ الأصل الإنجليزي

التالي:
  • مدقق semver اختبر الإصدارات مقابل نطاق npm مثل ^1.2.3 ورتّبها واعرف الإصدار التالي
  • مدقق JSON Schema تحقق من JSON مقابل JSON Schema (2020-12 و2019-09 وdraft 7) مع تحديد موضع كل خطأ

كيفية التحقق من ملف package.json

1

الصق ملف package.json، أو افتح الملف، أو انقر على جرّب مثالًا.

2

أصلح أي خطأ في صياغة JSON أولًا: يظهر سطره وعموده مع السبب المعتاد.

3

اقرأ ما يقوله npm: التحذيرات والأخطاء التي يطبعها npm نفسه لهذا الملف، حرفيًا.

4

راجع الفحوص الإضافية، مثل الاعتماديات دون إصدار مثبّت، وانقر على نسخ التقرير لمشاركتها.

حول مدقق package.json

يقرأ npm ملف package.json بصرامة في مواضع وبتساهل في أخرى: الإصدار الخاطئ يوقف كل شيء، بينما الوصف المفقود لا يجلب إلا تحذيرًا. تفحص هذه الصفحة الملف على ثلاث طبقات وتعرض كلًّا منها على حدة.

1. صياغة JSON. يظهر الخطأ الأول مع سطره وعموده والسبب المعتاد: فاصلة زائدة في النهاية، أو تعليق، أو علامات اقتباس مفردة، أو مفتاح دون علامات اقتباس. وتُسرد المفاتيح المكررة أيضًا، لأن JSON.parse يحتفظ بصمت بآخرها فقط وتضيع القيمة الأولى.

2. ما يقوله npm. التحذيرات والأخطاء التي يطبعها npm نفسه لهذا الملف، حرفيًا، مثل "No repository field." أو "Invalid version". وهي مأخوذة من إعادة كتابة وحدات npm نفسها normalize-package-data وvalidate-npm-package-name وvalidate-npm-package-license، وتقارن الاختبارات الإجابات بتلك الحزم على 80 ملف عيّنة و44 اسمًا و54 نص ترخيص.

رسالة npm ما العمل
Invalid version: "1.0" اكتب ثلاثة أرقام، مثل 1.0.0
No license field. أضف "license": "MIT" أو معرّف SPDX آخر
license should be a valid SPDX license expression استخدم المعرّف الدقيق، مثل Apache-2.0
scripts['server'] should probably be scripts['start']. أعد تسمية السكربت إلى start
name can no longer contain capital letters استخدم أحرفًا صغيرة لحزمة جديدة

3. فحوص إضافية. اعتماديات مكتوبة على شكل * أو latest أو نص فارغ؛ ونطاقات إصدارات غير صالحة، تُفحص بقواعد npm نفسها؛ وحزمة مدرجة في dependencies وdevDependencies معًا؛ واعتماديات git دون وسم؛ ومسارات محلية في حزمة منشورة؛ وقيمة "type" غير module أو commonjs؛ ونطاقات engines؛ وسكربت الاختبار المؤقت الذي يتركه npm init.

الملف الموسوم بـ "private": true لا يُنشر أبدًا، لذا لا يعرض npm تحذيراته؛ وتذكر الصفحة ذلك. كل شيء يعمل في متصفحك؛ ولا يُرسل أي شيء تلصقه إلى أي مكان.

الأسئلة الشائعة

لماذا يقول npm إن license should be a valid SPDX license expression؟

يجب أن يكون حقل license معرّف SPDX دقيقًا، مثل MIT أو ISC أو Apache-2.0، أو تركيبة مثل (MIT OR Apache-2.0). الصيغ القريبة مثل "mit" أو "Apache 2.0" أو "BSD" تفشل. للشيفرة المغلقة اكتب UNLICENSED، أو SEE LICENSE IN LICENSE.txt للإشارة إلى ملفك الخاص.

هل يمكن أن يحتوي اسم حزمة npm على أحرف كبيرة؟

ليس في حزمة جديدة. يجب أن تكون الأسماء بأحرف صغيرة، وألا تتجاوز 214 حرفًا، وأن تكون آمنة للاستخدام في URL، وألا تبدأ بنقطة أو شرطة سفلية، وألا تكون وحدة أساسية في Node.js مثل http. لبعض الحزم القديمة أحرف كبيرة لأن القواعد جاءت لاحقًا، وما زال npm يثبّتها، لكنه يرفض حزمة جديدة كهذه.

لماذا يقول npm إن Invalid version؟

يجب أن يكون الإصدار إصدارًا دلاليًا كاملًا من ثلاثة أرقام، مثل 1.0.0 أو 2.1.0-beta.1. كتابة 1.0 أو latest أو نص فارغ تمنع npm من قراءة الحزمة أصلًا. يقبل npm حرف v في البداية ويزيله، فيُقرأ v1.2.3 على أنه 1.2.3.

هل استخدام * أو latest إصدارًا للاعتمادية أمر سيئ؟

في الغالب نعم. كلاهما يقبل أي إصدار، فقد يحصل تثبيتان يفصل بينهما شهر على إصدارين رئيسيين مختلفين فيهما تغييرات غير متوافقة. اكتب نطاقًا بعلامة ^ مثل ^4.17.21، يقبل الإصلاحات والميزات لكنه يتوقف قبل الإصدار الرئيسي التالي، وأضف ملف القفل (lock) إلى المستودع حتى تتطابق كل التثبيتات.

هل يمكن أن يحتوي package.json على تعليقات؟

لا. ملف package.json هو JSON صارم لا يعرف التعليقات، لذا فإن سطرًا فيه // أو /* يمنع npm من قراءة الملف. من الحلول الشائعة مفتاح باسم "//" قيمته نص؛ إذ يتجاهل npm المفاتيح التي لا يعرفها. ويشير فحص الصياغة في هذه الصفحة إلى سطر التعليق.

ماذا يعني No repository field؟

يحذّر npm حين لا يحتوي package.json على repository، لأن موقع npm يربط منه بالشيفرة المصدرية. أضف "repository": {"type": "git", "url": "git+https://github.com/user/repo.git"}. لا يوقف التحذير أي شيء، ويتخطاه npm تمامًا في الحزمة الموسومة بـ "private": true.

المصادر

  • npm Docs, package.jsonFields, name rules, version, license and dependency specs
  • npm/normalize-package-data (GitHub)The warnings and errors npm prints when it reads a package.json
  • npm/validate-npm-package-name (GitHub)Name errors and the warnings for names only old packages may use
  • SPDX License ListThe license identifiers and exceptions a license expression may use

آخر تحقق في 16 أكتوبر 2026.

تتغير المعدلات والقواعد؛ راجع المصدر قبل الاعتماد على أي رقم.

هل ما زلت عالقًا؟ اسأل عن مدقق package.json ويمكن لأي شخص يعرف الإجابة أن يجيب. لا حاجة إلى حساب.

أدوات ذات صلة

جميع أدوات المطورين
مختبر التعبيرات النمطيةاختبر التعبيرات النمطية في JavaScript مع تمييز مباشر وشرح بلغة واضحةمقارنة النصوصقارن نصّين جنبًا إلى جنب وشاهد كل سطر أُضيف أو حُذفمقارنة JSONقارن مستندين بصيغة JSON واعرض كل قيمة أُضيفت أو حُذفت أو تغيّرتمعاينة Open Graphالصق صفحة وشاهد بطاقة المشاركة على Facebook وLinkedIn وX وWhatsApp وSlackكثافة الكلمات المفتاحية وسهولة القراءةعدد الكلمات والعبارات وكثافتها ووقت القراءة ودرجة سهولة القراءة Fleschرموز حالة HTTPكل رموز حالة HTTP، ومعناها، ومتى تُرسل، والمواصفة RFC التي جاءت منهامحلل وكيل المستخدماقرأ سلسلة وكيل المستخدم: المتصفح والمحرك ونظام التشغيل ونوع الجهاز وهل هو روبوتمختبر JSONPathشغّل استعلامات JSONPath وفق RFC 9535 على JSON ملصوق وشاهد كل تطابق مظلّلًا
هل كانت هذه الأداة مفيدة؟
Omnikit

مهام صغيرة تُنجز في متصفحك. مجانية وسريعة وخاصة. لا تُرفع الملفات أبدًا.

الملفات

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

المطورون

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

المال

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
الأدلةالأسئلةمن نحنكيف نتحققمكتبة القوانين (تجريبية)الخصوصيةالشروطالإفصاحاتصل بناMore: Exam practice (UGC NET Paper 1)يعمل في متصفحك. لا يُرفع أي شيء. © 2026 Omnikit (theomnikit.com)