HTTP နှင့် HTTPS အတွက် npm proxy ဆက်တင်များ
npm ၏ HTTP နှင့် HTTPS proxy လမ်းကြောင်းများကို ပြင်ဆင်ပြီး noproxy ချန်လှပ်မှုများ နားလည်ကာ TLS စစ်ဆေးမှု မပိတ်ဘဲ private CA သုံးပါ။
npm တွင် proxy နှင့် https-proxy ဆက်တင်များ သီးခြားရှိသည်။ ကွာခြားချက်မှာ request လုပ်သော ဦးတည်ရာ ဖြစ်သည်။ HTTPS tunnel လုပ်ပေးသည့် ပုံမှန် HTTP proxy အတွက် တန်ဖိုးနှစ်ခုလုံးက http:// endpoint တစ်ခုတည်းကို ညွှန်းနိုင်သည်။
Project အဆင့် .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
စာတမ်း endpoint ကို သင့် proxy ဖြင့် အစားထိုးပါ။ ခွင့်ပြုထားသော public registry စမ်းသပ်မှုအတွက် HTTP proxy စာရင်း က HTTP ရွေးချယ်စရာ ပေးသည်။ နောက်ဆုံးလိုင်းက အမည်ပေးထားသော internal registry ကို ရည်ရွယ်ချက်ရှိရှိ တိုက်ရိုက်ထားသည်။ အခြား proxy address မဟုတ်ပါ။
npm ကို request လုပ်ခိုင်းပါ
Cache မှ install လုပ်ခြင်းသည် လမ်းကြောင်းအတွက် မကောင်းသောစမ်းသပ်မှု ဖြစ်သည်။ npm မှာ လိုသမျှ ရှိပြီးသားဖြစ်နိုင်သည်။ Registry ping က ပိုသေးသောစစ်ဆေးမှုဖြစ်သည် —
npm ping --registry=https://registry.npmjs.org/
အောင်မြင်ပြီးဆုံးခြင်းက ဤ npm ခေါ်ဆိုမှုသည် ထို registry လမ်းကို ရောက်ကြောင်း ပြသည်။ Tarball host အားလုံး၊ Git dependency သို့မဟုတ် သီးခြား package-manager process တို့က တူညီသောလမ်းသုံးကြောင်း မသက်သေပြပါ။
ဆန့်ကျင်နေသည့်ဆက်တင်ရှာရန် အခြားဖိုင်များချက်ချင်းမပြင်ဘဲ အမှန်သက်ရောက်နေသောတန်ဖိုးကို စစ်ပါ။
npm config get proxy
npm config get https-proxy
npm config get noproxy
URL တွင် login အချက်အလက်ပါလျှင် ဤ commands က ထုတ်ပြနိုင်သည်။ Output ကို local တွင်စစ်ပါ။ မပြောင်းဘဲ issue ထဲမကူးထည့်ပါနှင့်။
Project .npmrc ကို global install တွင် မသုံးပါ။ npm install -g တစ်ခုတည်းပျက်လျှင် project ဖိုင်ဖတ်ခဲ့သည်ဟု မယူဆဘဲ ထိုခေါ်ဆိုမှု၏အမှန်သက်ရောက် configuration ကို စစ်ပါ။
IP မပြောင်းမီ ချန်လှပ်မှုစစ်ပါ
npm က proxy environment variables ကိုလည်း သုံးပြီး noproxy ဆက်တင်က NO_PROXY မှလာနိုင်သည်။ အမှန်သက်ရောက် configuration က ချန်ထားသည့်ဦးတည်ရာသည် proxy value ရှိသော်လည်း တိုက်ရိုက်ချိတ်နိုင်သည်။ တစ်ဖက်တွင် .npmrc တစ်ခုမှ လိုင်းဖျက်ခြင်းက inherited environment variable ကို မဖယ်ပါ။
Certificate အမှားကို သီးခြားထားပါ
ခွင့်ပြုထားသော inspection proxy က အဖွဲ့အစည်း CA လိုနိုင်သည်။ Node/npm က ၎င်းကို ယုံကြည်မထားသေးနိုင်ပါ။ npm သည် CA ဖိုင်ကို ပံ့ပိုးသည် —
cafile=/path/to/approved-ca-bundle.pem
strict-ssl=true
ထိုပတ်ဝန်းကျင်အတွက် တကယ်အတည်ပြုထားသော bundle ကို သုံးပါ။ strict-ssl=false က certificate verification ကို အားလျော့စေပြီး မှန်ကန်သော proxy သို့မဟုတ် trust material ရွေးချယ်ခြင်း၏အစား မဟုတ်ပါ။
စမ်းသပ်မှုပြီးလျှင် သင်ထည့်ခဲ့သော project overrides ကို ဖယ်ပြီး အမှန်သက်ရောက်တန်ဖိုးများ ပြန်ကြည့်ပါ။ ဤသို့ဖြင့် အခြား project များမပြောင်းဘဲ ယခင် configuration ကို ပြန်အမွေဆက်ခံနိုင်သည်။