راهنمای خودکارسازی فرآیند انتشار بسته‌های npm در نکسوس از طریق ترمینال

در فرآیند توسعه نرم‌افزار، استفاده از مخازن محلی و خصوصی برای مدیریت وابستگی‌ها و امنیت کدهای درون‌سازمانی نقشی حیاتی ایفا می‌کند. با این حال، بارگذاری دستی فایل‌ها از طریق رابط کاربری وب در مدیریت مخازن، فرآیندی زمان‌بر و خطا‌پذیر است.

در این مطلب، نحوه پیکربندی محیط ترمینال برای آپلود مستقیم بسته‌ها با استفاده از دستورهای خط فرمان و چگونگی رفع خطاهای رایج احراز هویت به صورت گام‌به‌گام بررسی شده است.

 رفع محدودیت انتشار بسته (خطای خصوصی بودن پروژه)

به طور پیش‌فرض، برای جلوگیری از انتشار ناخواسته کدهای خصوصی در مخازن عمومی اینترنت، پروژه‌ها مجهز به یک فلگ حفاظتی هستند. در صورت مواجهه با خطای مربوط به خصوصی بودن پروژه در زمان انتشار، باید فایل تنظیمات اصلی پروژه خود را بررسی نموده و خط مربوط به وضعیت خصوصی (پرایوت) را حذف کنید یا مقدار آن را به حالت غیرفعال تغییر دهید تا اجازه انتشار صادر شود.

:package.json

"private": false

حل چالش احراز هویت و مپینگ توکن (خطاهای عدم دسترسی)

استفاده از دستورهای استاندارد ورود به سامانه در مواجهه با زیرپوشه‌های اختصاصی در مخزن نکسوس، به دلیل عدم انطباق دقیق ساختار آدرس‌دهی، معمولاً منجر به شکست در تایید هویت نهایی می‌شود. برای دور زدن این محدودیت و ایجاد یک دسترسی پایدار، روش احراز هویت صریح جایگزین می‌شود

 ابتدا نام کاربری و رمز عبور حساب نکسوس خود را به صورت یکپارچه در یک ابزار استاندارد، به یک رشته متنی رمزگذاری شده (بر پایه شصت و چهار) تبدیل کنید.
 فایل تنظیمات سراسری ابزار مدیریت بسته‌ها را در سیستم خود باز کنید (در سیستم‌عامل ویندوز این فایل در پوشه کاربری شما قرار دارد).
  داده‌های پیشین مربوط به این ریپازیتوری را پاک کرده و ساختار زیر را دقیقاً جایگزین نمایید (رشته متنی رمزگذاری شده خود را درون علامت نقل‌قول قرار دهید):

//nexus.mavaratech.com/repository/npm-repo-host-mavaratech/:_auth="YOUR_BASE64_STRING"
//nexus.mavaratech.com/repository/npm-repo-host-mavaratech/:always-auth=true

نکته امنیتی: توجه داشته باشید که عبارت مربوط به پروتکل اینترنتی در ابتدای آدرس‌ها حذف شده باشد، اما علامت‌های اسلش ابتدایی و انتهایی دقیقاً مطابق نمونه درج شوند.

پس از اعمال تنظیمات فوق، فرآیند آپلود بسته بدون نیاز به تعامل با پنل وب نکسوس و تنها با اجرای دستور زیر در پوشه اصلی پروژه انجام خواهد شد:

npm publish --registry=https://nexus.mavaratech.com/repository/npm-repo-host-mavaratech/