@ স্টিভ রবার্টস উত্তরটি প্রসারিত করতে।
আমার ব্যবহারকারীর নামটি "ডোমেন \ ব্যবহারকারীর নাম" ফর্মের - প্রক্সি কনফিগারেশনের স্ল্যাশ সহ একটি ফরোয়ার্ড স্ল্যাশ উপস্থিত হতে পারে। সুতরাং এটি প্রবেশ করানো:
npm config set proxy "http://domain\username:password@servername:port/"
আমার ইউআরএলটিও আমার domain\user
স্ট্রিং এনকোড করতে হয়েছিল , তবে আমার ইউজার নেমটির ভিতরে আমার একটি স্পেস রয়েছে তাই আমি +
স্পেস ইউআরএল এনকোডিংয়ের জন্য একটি এনকোড রেখেছি তবে এটি ডাবল এনকোডযুক্ত হবে %2B
(প্লাস চিহ্নের জন্য ইউআরএল এনকোডিং যা তবে ইউআরএল) একটি স্থান জন্য এনকোডিং হয়%20
), সুতরাং এর পরিবর্তে আমাকে নিম্নলিখিতগুলি করতে হয়েছিল:
npm কমান্ড
// option one
// it works for some packages
npm config set http_proxy "http://DOMAIN%5Cuser+name:password@x.x.x.x:port"
npm config set proxy "http://DOMAIN%5Cuser+name:password@x.x.x.x:port"
// option two
// it works best for me
// please notice that I actually used a space
// instead of URL encode it with '+', '%20 ' OR %2B (plus url encoded)
npm config set http_proxy "http://DOMAIN%5Cuser name:password@x.x.x.x:port"
npm config set proxy "http://DOMAIN%5Cuser name:password@x.x.x.x:port"
// option two (B) as of 2019-06-01
// no DOMAIN
// instead of URL encode it with '+', '%20 ' OR %2B (plus url encoded)
npm config set http_proxy "http://user name:password@x.x.x.x:port"
npm config set proxy "http://user name:password@x.x.x.x:port"
সমস্যা সমাধানের জন্য এনএমপি কনফিগারেশন
আমি ব্যবহার npm config list
উপরে উল্লিখিত পার্স করা মানগুলি পেতে করেছি এবং এটিই ডাবল এনকোডিং সম্পর্কে আমি জানতে পেরেছিলাম। রহস্যময়।
মূলত আপনাকে নিম্নলিখিত প্রয়োজনীয়তাগুলি বের করতে হবে:
- ইহা একটি
DOMAIN
প্রমাণীকরণের জন্য প্রয়োজনীয় স্ট্রিং
- আপনার কি বিশেষ অক্ষরগুলি এনকোড করা দরকার?
- স্পেসস এবং (@) লক্ষণগুলি বিশেষভাবে চ্যালেঞ্জিং
শুভেচ্ছা।
উইন্ডোজ এনভায়রনমেন্ট ভেরিয়েবলস (সিএমডি প্রম্পট)
হালনাগাদ
দেখা যাচ্ছে যে উপরের কনফিগারেশনের পরেও আমার কাছে এখনও কিছু প্যাকেজ / স্ক্রিপ্টগুলির সাথে কিছু সমস্যা রয়েছে যা অনুরোধ - সরলিকৃত HTTP ক্লায়েন্টটি অভ্যন্তরীণভাবে স্টাফ ডাউনলোড করতে ব্যবহার করে use সুতরাং, উপরোক্ত রেডমি যেমন ব্যাখ্যা করেছেন, আমরা পরিবেশের ভেরিয়েবলগুলি নির্দিষ্ট করতে পারি কমান্ড লাইনে প্রক্সি সেট , এবং অনুরোধগুলি এই মানগুলিকে সম্মান জানায়।
তারপরে, এবং পরিবেশের পরিবর্তনশীলগুলি সেট করার চেষ্টা করার পরে (এবং আমি এটি স্বীকার করতে অনিচ্ছুক) বেশিরভাগ চেষ্টা (আরও দিনের মতো) নীচের নির্দেশিকাগুলি সহ আমি শেষ পর্যন্ত সফল হয়েছি:
rem notice that the value after the = has no quotations
rem - I believe that if quotations are placed after it, they become
rem part of the value, you do not want that
rem notice that there is no space before or after the = sign
rem - if you leave a space before it, you will be declaring a variable
rem name that includes such space, you do not want to do that
rem - if you leave a space after it, you will be including the space
rem as part of the value, you do not want that either
rem looks like there is no need to URL encode stuff in there
SET HTTP_PROXY=http://DOMAIN\user name:password@x.x.x.x:port
SET HTTPS_PROXY=http://DOMAIN\user name:password@x.x.x.x:port
cntlm
আমি কয়েক সপ্তাহ ধরে উপরের কৌশলটি ব্যবহার করেছি, ততক্ষণে আমি প্রক্সি সেটআপের জন্য প্রয়োজনীয় সমস্ত সরঞ্জাম জুড়ে আমার পাসওয়ার্ড আপডেট করার ওভারহেডটি উপলব্ধি করেছি।
এনপিএম ছাড়াও, আমি এটিও ব্যবহার করি:
- আবাস
- ভবঘুরে
- ভার্চুয়াল বক্স (চলমান লিনাক্স)
- আপ্ট-গেট [লিনাক্স]
- Git
- vscode
- বন্ধনী
- পরমাণু
- tsd
cntlm সেটআপ পদক্ষেপ
সুতরাং, আমি cntlm ইনস্টল করেছি । সেটিং cntlm
চমত্কার stright এগিয়ে হয়, তাহলে আপনি স্টার ফাইলের জন্য চেহারা @C:\Program Files\Cntlm\cntlm.ini
- খোলা
C:\Program Files\Cntlm\cntlm.ini
(আপনার প্রশাসকের অধিকারের প্রয়োজন হতে পারে)
- সন্ধান করুন
Username
এবং Domain
রেখাগুলি (8-9 লাইনটি আমি মনে করি)
- আপনার ব্যবহারকারীর নাম যুক্ত করুন
- আপনার ডোমেন যুক্ত করুন
সেন্টিমিডি প্রম্পট রান:
cd C:\Program Files\Cntlm\
cntlm -M
cntlm -H
- আপনাকে পাসওয়ার্ড জিজ্ঞাসা করা হবে:
cygwin warning:
MS-DOS style path detected: C:\Program Files\Cntlm\cntlm.ini
Preferred POSIX equivalent is: /Cntlm/cntlm.ini
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
Password:
আপনি যে আউটপুটটি পাবেন cntlm -H
তা দেখতে কিছুটা দেখতে পাবেন:
PassLM 561DF6AF15D5A5ADG
PassNT A1D651A5F15DFA5AD
PassNTLMv2 A1D65F1A65D1ASD51 # Only for user 'user name', domain 'DOMAIN'
- এটা তোলে recomended যে আপনি PassNTLMv2 তাই একটি যোগ ব্যবহার
#
লাইন সামনে PassLM
এবং PassNT
অথবা তাদের ব্যবহার করবেন না
- থেকে আউটপুট আটকান
cntlm -H
স্টার জন্য লাইন প্রতিস্থাপন ফাইলে PassLM
, PassNT
এবং PassNTMLv2
, বা মন্তব্য মূল লাইন এবং পুলিশের যোগ করুন।
- আপনার
Proxy
সার্ভারগুলি যুক্ত করুন। প্রক্সি সার্ভারটি কী তা যদি আপনি না জানেন ... আমি যা করেছি তা করুন, আমি AutoConfigURL
রেজিস্ট্রি কীটি অনুসন্ধান করে আমার প্রক্সি অটো-কনফিগারেশন ফাইলটি সন্ধান করেছি HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
। সেই url এ নেভিগেট করুন এবং জাভাস্ক্রিপ্ট হওয়ার মতো কোডটি দেখুন।
- অপশনালি আপনি পোর্টটি পরিবর্তন করতে পারেন যেখানে সিএনটিএলএম
Listen ####
লাইন পরিবর্তন করে শোনেন , ####
পোর্ট সংখ্যাটি কোথায় ।
সিএনটিএলএম সহ এনপিএম সেটআপ করুন
সুতরাং, আপনি আপনার সিএনটিএমএল প্রক্সিটিতে এনপিএম নির্দেশ করেন, আপনি আইপি ব্যবহার করতে পারেন, আমি ব্যবহার করেছি localhost
এবং সিএনটিএলএম জন্য ডিফল্ট পোর্ট 3128
যাতে আমার প্রক্সি ইউআরএল দেখতে দেখতে
http://localhost:3128
যথাযথ আদেশ সহ:
এনপিএম কনফিগারেশন প্রক্সি সেট করুন http: // লোকালহোস্ট: 3128
অনেক সহজ। আপনি একই URL এর সাহায্যে আপনার সমস্ত সরঞ্জাম সেটআপ করেছেন এবং আপনি কেবলমাত্র এক জায়গায় পাসওয়ার্ড আপডেট করেন। জীবন এত সহজ না।
অবশ্যই সেটআপ করতে হবে এনপিএম সিএ শংসাপত্র
এনএমপি ডকুমেন্টেশন সিএ থেকে
যদি আপনার কর্পোরেট প্রক্সিটি তার নিজের স্বাক্ষরিত শংসাপত্রের সাথে https সংযোগগুলিকে বাধা দিচ্ছে, তবে এড়ানো উচিত npm config set strict-ssl false
(বড় নং-না)
বেসিক পদক্ষেপ
- আপনার ব্রাউজার থেকে শংসাপত্র পান (Chrome ভাল কাজ করে)। এটি বেস -৪৪ এনকোডড X.509 (.CER) হিসাবে রফতানি করুন
- এর সাথে নতুন লাইনগুলি প্রতিস্থাপন করুন
\n
- আপনার
.npmrc
একটি লাইন যুক্ত সম্পাদনা করুনca[]="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"
সমস্যা
আমি খেয়াল করেছি যে মাঝে মাঝে এনপিএম ধরণের হ্যাং থাকে, তাই আমি (কখনও কখনও জোর করে) সিএনটিএলএম থামিয়ে পুনরায় চালু করি।