مستودع NPM المحلي في 5 دقائق مع حزمه والتخزين المؤقت

يوم جيد!

عاجلاً أم آجلاً ، تواجه المؤسسات مشاكل في توزيع وحدات 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://192.168.51.79:1234 

تم ، سيتم الآن نقل جميع طلبات npm الخاصة بك وسيتم تخزينها مؤقتًا من خلال الخادم المحلي.

إذا كنت بحاجة إلى نشر حزمة npm على الخادم ، فاتبع الإرشادات أدناه.

إنشاء مستخدم

 npm adduser --registry http://192.168.51.79:1234 login password mail@mail.ru 

تسجيل الدخول

 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://name:pass@proxy:port/ https-proxy=http://name:pass@proxy:port/ registry=http://registry.npmjs.org/ 


PPS عند التشغيل على النوافذ ، يفضل استخدام powerhell على الخادم ، وقد يتم تجميد cmd npm بعد يوم واحد.

سأكون سعيدًا بالتعليقات والملاحظات حول كيفية عمل ذلك من أجلك.

Source: https://habr.com/ru/post/ar427069/


All Articles