جافاسكريبت - Webpack لا يمكنه استيراد الحزمة المثبتة من Git


لذلك قمت بعمل فورك لحزمة في الجيت. أجريت التغييرات الخاصة بي. ثم في الطرفية الخاصة بي

npm install --save git+https://github.com/hayk94/ddp.js.git

ثم أحاول استيراد الحزمة في الكود الخاص بي بهذا الشكل

import DDP from 'ddp.js'

لكن webpack يعطيني هذا الخطأ

ERROR in ./main.js
Module not found: Error: Can't resolve 'ddp.js' in '/Users/hayksafaryan/projects/b2cEmbedLib'
 @ ./main.js 23:11-28
 @ multi (webpack)-dev-server/client?http://localhost:8080 babel-polyfill ./main.js
webpack: Failed to compile.

ومع ذلك، يعمل webpack بشكل جيد إذا قمت بتثبيت الحزمة من npm. أستورد الحزمة كما في الوثائق، ومع ذلك ربما هناك طريقة أخرى للحزم المثبتة من git؟

الإجابة رقم 1

نقطة الدخول للحزمة هي lib/ddp.js، لكن هذا الملف غير موجود في المستودع. من الشائع جدًا أن تقوم المكتبات ببناء ملفاتها قبل النشر على npm، بحيث يمكنهم استخدام ميزات JavaScript الأحدث وفي الوقت نفسه تقديم الدعم للإصدارات القديمة التي لا تدعمها. يتم ذلك باستخدام prepublish hook، الذي يتم تشغيله تلقائيًا قبل نشر الحزمة (عند تشغيل npm publish). وبهذا، الملفات المبنية لا تنتهي في المستودع، لأنها بشكل أساسي ستؤدي إلى فوضى في الالتزامات. يقرر بعض الأشخاص إضافتها إلى المستودع حتى يتمكنوا من استخدامها مباشرة من هناك، وهذا أصبح نادرًا جدًا لأن هذه الحالات عادةً ما تغطيها خدمات مثل Unpkg.

لديك عدة خيارات لاستخدامه من مستودع git.

  • تحقق من الملفات التي تم إنشاؤها.
  • قم بإنشاء الملفات بعد التثبيت. إما يدوياً أو باستخدام خطاف postinstall. (غير مستحسن)
  • قم بتغيير نقطة الدخول إلى src/ddp.js. إذا كنت بحاجة إلى تحويل الملفات، فهذا ليس خيارًا صالحًا، على الرغم من أنه يمكنك نظريًا إضافة الحزمة إلى القائمة البيضاء في إعدادات webpack الخاصة بك لكي يتم تحويلها (على افتراض أنك كنت تستبعد node_modules من أن يتم تحويلها).
  • انشر الحزمة على npm تحت نطاقك (@yourusername/ddp.js) واستخدمها. للتفاصيل، انظر العمل مع الحزم ذات النطاق.