يوم جيد!
عاجلاً أم آجلاً ، تواجه المؤسسات مشاكل في توزيع وحدات js بين المشاريع ، وقد حان الوقت الذي نشأ فيه هذا السؤال في شركتنا.
إن نسخ ولصق الكود هو الطريق إلى الجانب المظلم ، لذلك تم اتخاذ القرار بكتابة ليس فقط كود js ، ولكن إنشاء حزم npm منه للتوزيع بين مشروعاتك.
أدى البحث عن مستودعات npm المجانية والخاصة إلى طريق مسدود ، واستخدام المستودعات الخاصة على 
npm يتطلب رسومًا (ليست 
عقليتنا ).
نظرًا لأن المكتب يحتوي على خادم يعمل دائمًا (تقريبًا) ، فقد تقرر نشر npm المحلية.

جهاز مستودعات npm المحلية الشعبية بسيط للغاية ورتيب ، اخترنا 
Verdaccio ، نظرًا لحقيقة نشر التحديثات الخاصة به مؤخرًا نسبيًا.
هذه حزمة npm يتم تثبيتها بشكل أساسي على Node.js> 4 وتوفر واجهة ويب لمنفذ معين.
ميزة إضافية كبيرة هي وظيفة التخزين المؤقت ، عندما لا يجد npm المحلي الحزمة المطلوبة منه ، ثم ينتقل إلى npmjs.com ، ويقوم بتنزيل الحزمة الضرورية على القرص ، وعند الطلبات المتكررة لهذه الحزمة ، يوزع نسخته المخزنة بالفعل.
لذا ، لإعداد.
على الجهاز الذي سيكون الخادم:
npm i -g verdaccio 
في الملف C: \ Users \ lab \ AppData \ Roaming \ verdaccio \ config.yaml توجد معلمات الخادم
المعلمات الافتراضية قابلة للتطبيق ، ولا يمكنك تغيير أي شيء ، ما عليك سوى إضافة الإعداد في نهاية الملف ، وبفضل ذلك سيفهم Verdaccio أي منفذ للاستماع إليه.
 listen: 192.168.51.79:1234 
192.168.51.79 هو خادم IP ، يقوم بتعيين العنوان حتى نتمكن من الوصول من الشبكة المحلية عبر خادم IP ، أو عن طريق اسم DNS الخاص به وإضافة منفذ 1234 سنصل إلى واجهة الويب.
إذا قمت بتسجيل 
الاستماع: 192.168.51.79:80 فلا حاجة لكتابة منفذ عند تكوين العملاء.
بعد ذلك ، قم بتشغيل npm المحلية الخاصة بنا
 verdaccio 
سيتم تنفيذ الإجراءات المتبقية على العملاء.
قم بتعيين المسار إلى المستودع المحلي.
 npm set registry http: 
تم ، سيتم الآن نقل جميع طلبات npm الخاصة بك وسيتم تخزينها مؤقتًا من خلال الخادم المحلي.
إذا كنت بحاجة إلى نشر حزمة npm على الخادم ، فاتبع الإرشادات أدناه.
إنشاء مستخدم
 npm adduser --registry http: 
تسجيل الدخول
 npm login password bezrukov@mir-omsk.ru 
نتحقق من أننا تحت "تسجيل الدخول" المستخدم
 npm whoami 
ننشر الحزمة ، rootProjectFolder هو مجلد يحتوي على الأقل على ثلاثة ملفات index.js \ package.json \ README.md ، 
يتم نشر المثال على github .
 cd /rootProjectFolder npm publish 
تحديث الحزمة. نقوم بتحديث الإصدار في package.json ، وننفذ الأوامر
 cd /rootProjectFolder npm publish 
الحزمة على الخادم المحلي ، يمكنك الذهاب إلى 
192.168.51.79 : 1234 ومعرفة أن هناك حزمة جديدة.
بالمناسبة ، يتم تقديم معلومات حول كل من الحزم في شكل مناسب وهناك بحث عن الحزم المحلية.

ملاحظة: إذا كانت شبكتك تحتوي على وكيل ، فأنت بحاجة إلى تحديد معلماتها بشكل صريح على الخادم ، ولكنك لا تحتاج إلى القيام بذلك على العميل ، لأن مستودع npm محلي ولا تحتاج إلى خادم وكيل للوصول إلى العملاء.
على الخادم ، قم بتشغيل الأمر 
npm config edit وأضف الأسطر التالية
 proxy=http: 
PPS عند التشغيل على النوافذ ، يفضل استخدام powerhell على الخادم ، وقد يتم تجميد cmd npm بعد يوم واحد.
سأكون سعيدًا بالتعليقات والملاحظات حول كيفية عمل ذلك من أجلك.