Tiny Online Tools logoTiny Online Toolssearchابحث في الادوات…grid_viewكل الادوات
الرئيسيةchevron_rightأدوات الهندسة العكسيةchevron_rightأداة تصور تبعيات حزمة JSأداة تصور تبعيات حزمة JS

أداة تصور تبعيات حزمة JS

اكتشف حدود الوحدات داخل حزمة webpack أو Rollup أو esbuild أو Vite وشاهد أي وحدة تعتمد على أي وحدة، عبر مطابقة حقيقية لشكل شجرة AST، لا تخمين نصي.

مصدر الحزمةلصق الشيفرةرفع ملف

ادوات مشابهة

فاحص حزمة Webpack

فاحص حزمة Webpack

يكتشف بيئة تشغيل webpack وخريطة الوحدات وبيانات chunk-push عبر شكل شجرة AST، ويعرض الشيفرة الحقيقية لكل وحدة، ويوضّح بصراحة عندما لا يكون الملف ناتج webpack.

مصوّر إنتروبيا الملفات الثنائية

مصوّر إنتروبيا الملفات الثنائية

ارسم إنتروبيا شانون لأي ملف باستخدام نافذة منزلقة لاكتشاف المناطق المضغوطة أو المشفّرة أو المحزومة، مع تراكب حدود الأقسام.

محلل الحجم بخريطة المصدر

محلل الحجم بخريطة المصدر

وزّع بايتات الحزمة على ملفات ومجلدات المصدر الأصلية التي أنتجتها، باستخدام ملف .map — واكتشف ما الذي يشغل المساحة فعليًا.

محلل الكود الميت في جافاسكريبت

محلل الكود الميت في جافاسكريبت

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

تقسيم PDF

تقسيم PDF

قسّم ملف PDF إلى صفحات فردية أو نطاقات صفحات.

حاسبة CIDR

حاسبة CIDR

احسب الشبكة والبث والقناع وعدد المضيفين من ادخال CIDR.

QR رمز ماسح

QR رمز ماسح

امسح رموز QR مباشرةً في متصفحك دون الحاجة إلى أي تطبيق.

apps

المزيد من الادوات

تصفح مجموعتنا الكاملة من الادوات المجانية عبر الانترنت.

ما الذي تجده هذه الأداة

تُرسل المواقع الحديثة ملف JavaScript واحدًا مبنيًا من مئات الملفات المصدرية. تنظر هذه الأداة داخل ذلك الملف وتحاول استعادة حدود الوحدات الأصلية — بغضّ النظر عن أداة التجميع، معتمدة على شكل شجرة AST الحقيقي بدل مطابقة النص، التي تنهار فور تصغير الشيفرة.

تحاول بهذا الترتيب:

  1. شكل function-map في webpack — دالة تُستدعى فورًا (IIFE) وسيطُها كائن أو مصفوفة، كل عنصر فيها دالة بالشكل (module, exports, require). يكتشف هذا أيضًا الغلاف الكلاسيكي webpackUniversalModuleDefinition مهما كان عمق موضع النداء الحقيقي لخريطة الوحدات.
  2. شكل chunk-push في webpack(self.webpackChunkXxx = self.webpackChunkXxx || []).push([ids, {modules}, runtime])، وهو الشكل الذي ينتجه تقسيم الشيفرة في webpack 5.
  3. تعليقات Rollup / esbuild / Vite — تحتفظ بعض البنى غير المصغّرة من هذه العائلة بتعليق سطري بالشكل // المسار/إلى/الملف.js قبل شيفرة كل وحدة. عند وجودها تصبح حدود الوحدات.
  4. البديل الصادق — إن لم يُعثر على أي مما سبق (وغالبًا لأن الحزمة بناء مصغّر ومسطّح النطاق من Rollup/esbuild/Vite بلا أي علامات حدود)، تعلن الأداة ذلك وتسرد الإعلانات ذات المستوى الأعلى في الملف بدل اختلاق قائمة وحدات.

كيفية قراءة النتيجة

عند العثور على وحدات، تسرد كل واحدة ما تستدعيه عبر require() بمعرّف وحدة حرفي، وبالقدر نفسه من الفائدة، أي الوحدات الأخرى تعتمد عليها — لتتبع "ماذا سينكسر لو أزلت هذه" في أي اتجاه دون تنفيذ أي شيء.

الصدق في التصميم

لا يمكن حل استدعاءات require الديناميكية (require(متغير)) ولا import() بشكل ثابت، لذا تُترك ببساطة خارج قائمة التبعيات — وقد يقلل هذا من عدد التبعيات لكنه لن يختلق واحدة أبدًا. وبالمثل، معرّف وحدة يشير إليه استدعاء require() وليس موجودًا في الخريطة المكتشفة يظل يظهر كهدف لحافة رغم عدم وجود بطاقة خاصة به؛ وهذا يعني عادة أنه يعيش في جزء آخر لم يُلصق هنا.

الخصوصية

كل شيء يعمل في متصفحك عبر محلّل JavaScript حقيقي (acorn). الحزمة التي تلصقها أو ترفعها لا تُرسل إلى أي مكان أبدًا.