تنظیمات پروکسی npm برای HTTP و HTTPS
مسیرهای پروکسی HTTP و HTTPS در npm را تنظیم کنید، استثناهای noproxy را بفهمید و CA خصوصی را بدون خاموشکردن بررسی TLS به کار ببرید.
npm تنظیمات جداگانهٔ proxy و https-proxy دارد. تفاوت در مقصدی است که درخواست میشود. برای پروکسی HTTP معمولی که HTTPS را تونل میکند، هر دو مقدار میتوانند به همان نقطهٔ http:// اشاره کنند.
یک .npmrc در سطح پروژه میتواند شامل این موارد باشد:
proxy=http://203.0.113.10:8080
https-proxy=http://203.0.113.10:8080
noproxy=localhost,127.0.0.1,registry.example.internal
نقطهٔ نمونهٔ مستندات را با پروکسی خود عوض کنید؛ برای آزمایش مجاز رجیستری عمومی، فهرست پروکسیهای HTTP گزینههای HTTP میدهد. خط آخر عمداً رجیستری داخلی نامبرده را مستقیم نگه میدارد. این نشانی پروکسی دیگری نیست.
از npm بخواهید درخواست بفرستد
نصب از حافظهٔ نهان آزمایش ضعیفی برای مسیر است؛ شاید npm همهٔ نیازها را از قبل داشته باشد. ping رجیستری بررسی کوچکتری است:
npm ping --registry=https://registry.npmjs.org/
پایان موفق نشان میدهد این فراخوانی npm به مسیر آن رجیستری رسیده است. ثابت نمیکند هر میزبان tarball، وابستگی Git یا فرایند جداگانهٔ مدیر بسته از همان مسیر میرود.
برای پیدا کردن تنظیم متعارض، بهجای ویرایش فوری فایلهای بیشتر، مقادیر مؤثر را بررسی کنید:
npm config get proxy
npm config get https-proxy
npm config get noproxy
این فرمانها ممکن است اطلاعات ورود را، اگر در URL باشند، چاپ کنند. خروجی را محلی بررسی کنید و بدون تغییر در گزارش مشکل نچسبانید.
.npmrc پروژه برای نصبهای سراسری استفاده نمیشود. اگر فقط npm install -g شکست میخورد، بهجای فرض خواندن فایل پروژه، تنظیم مؤثر همان فراخوانی را بررسی کنید.
پیش از تغییر IP استثناها را بررسی کنید
npm با متغیرهای محیطی پروکسی هم کار میکند و تنظیم noproxy میتواند از NO_PROXY بیاید. مقصدی که تنظیم مؤثر مستثنا کرده، حتی با وجود مقدار پروکسی میتواند مستقیم متصل شود. برعکس، حذف خطی از یک .npmrc متغیر محیطی بهارثرسیده را پاک نمیکند.
خطاهای گواهی را جدا نگه دارید
پروکسی بازرسی مجاز ممکن است به CA سازمان نیاز داشته باشد که محیط Node/npm هنوز به آن اعتماد ندارد. npm از فایل CA پشتیبانی میکند:
cafile=/path/to/approved-ca-bundle.pem
strict-ssl=true
از مجموعهٔ واقعی تأییدشده برای آن محیط استفاده کنید. strict-ssl=false بررسی گواهی را ضعیف میکند؛ جایگزین انتخاب پروکسی یا مواد اعتماد درست نیست.
پس از آزمایش، بازنویسیهای پروژهای افزودهشده را حذف و مقادیر مؤثر را دوباره بررسی کنید. پروژه میتواند تنظیم قبلی را به ارث ببرد، بدون تغییر پروژههای دیگر همان دستگاه.