Sử dụng npm đằng sau proxy công ty .pac


157

Tôi cần tải xuống một số gói thông qua npm nhưng cấu hình proxy công ty của chúng tôi là tệp .pac (tôi đang ở trên windows)

Tôi đã thử rồi

npm config set proxy http://mydomain\username:password@1.2.3.4:8181/proxy.pac
npm config set https-proxy http://mydomain\username:password@1.2.3.4:8181/proxy.pac

hoặc là

npm config set proxy http://1.2.3.4:8181/proxy.pac
npm config set https-proxy http://1.2.3.4:8181/proxy.pac

nhưng nó không hoạt động ...

Bất kì lời đề nghị nào? cảm ơn



8
Tôi không nghĩ câu hỏi này là trùng lặp, tập lệnh pac có thể chứa nhiều địa chỉ proxy tùy thuộc vào địa chỉ ip / máy chủ đích, trong khi dube chỉ giải quyết 1 địa chỉ proxy - Từ đánh giá
Ferrybig

1
Không một câu trả lời nào cho biết cách sử dụng tập lệnh pac có thể chứa nhiều địa chỉ proxy tùy thuộc vào địa chỉ ip / máy chủ đích. Ai có thể giúp tôi không.
Partha Sarathi Ghosh

2
Đối với tôi, nó đã giúp mở proxy.pactệp để lấy địa chỉ proxy từ nó. (Trong trường hợp của tôi, tôi chỉ cần chuyển cổng sang 8080).
người du mục

@ParthaSarathiGhosh Bạn nói đúng, không có câu trả lời nào thực sự giải thích cách sử dụng tập lệnh PAC, vì vậy tôi đã thêm một câu trả lời khác giải quyết vấn đề này: stackoverflow.com/a/61811444 . Đã trễ vài năm, nhưng muộn còn hơn không?
dùng1031921

Câu trả lời:


204

Tôi vừa gặp một vấn đề rất giống nhau, ở đó tôi không thể có được npm để làm việc đằng sau máy chủ proxy của chúng tôi.

Tên người dùng của tôi có dạng "domain \ username" - bao gồm dấu gạch chéo trong cấu hình proxy dẫn đến dấu gạch chéo phía trước xuất hiện. Vì vậy, nhập vào đây:

npm config set proxy "http://domain\username:password@servername:port/"

sau đó chạy cái này npm config get proxytrả về cái này: http: // domain / username: password @ servername: port /

Do đó, để khắc phục sự cố tôi thay vào đó URL đã mã hóa dấu gạch chéo ngược, vì vậy hãy nhập vào đây:

npm config set proxy "http://domain%5Cusername:password@servername:port/"

và với điều này, quyền truy cập proxy đã được sửa.


5
nguyên nhân của bạn là thiếu phần% 5C .key là C .... xem tôi đã đặt nó ra cho ya
sinisterrook

1
Tôi vừa cập nhật một số thứ và proxy của tôi đã ngừng hoạt động trở lại. Hóa ra trong cài đặt "proxy" của tệp .npmrc (như được đề cập dưới đây bởi @Ovidiu Buligan), nó chứa% 5C cho dấu gạch chéo ngược, nhưng "https-proxy" chỉ chứa "\". Thay đổi điều này thành% 5C đã khắc phục sự cố. Tôi cho rằng điều này cũng có thể được cập nhật bằng cách chạy cấu hình npm http_proxy " domain% 5Cusername: password @ servername: port /"
Steve Roberts

1
Tôi đang cố gắng định cấu hình npm phía sau proxy, nhưng có một cách để thực hiện "ping" bằng cách sử dụng cấu hình npm. Bởi vì nếu conf của tôi sai, người dùng của tôi sẽ bị chặn trên miền công ty của tôi.
Ricardo

3
Có gì làm việc cho tôi là để GIẢI PHÓNG các biến môi trường darn đầu tiên. Sử dụng bộ HTTP_PROXY =đặt HTTPS_PROXY =
Sydwell

4
Thêm strict-ssl=falsevào .npmrctập tin cấu hình đã giải quyết cho tôi đằng sau một proxy công ty - xem câu trả lời từ @ ovidiu-buligan@ karthikeyan-a
Alexander McFarlane

64

Tìm url của pactệp trong cài đặt lan explorer internet và tải xuống tệp pac từ URL được định cấu hình. Tệp pac chỉ là một tệp javascript có chức năng được đặt tên FindProxyForURLtrả về các máy chủ proxy khác nhau trong các tình huống khác nhau.

Cố gắng tìm một máy chủ lưu trữ trong tệp pac mà bạn nghĩ là dành cho lưu lượng truy cập web nói chung và cắm nó vào .npmrc trong C:\Users\<username>\.npmrc

proxy=http://<username>:<pass>@proxyhost:<port>
https-proxy=http://<uname>:<pass>@proxyhost:<port>

Mặc dù bạn có thể đăng nhập bằng tên miền và tên người dùng của mình trên máy công ty, nhưng rất có thể tên miền thư mục hoạt động của người dùng không bắt buộc đối với proxy , chỉ có tên người dùng và mật khẩu (có thể khác với đăng nhập Active Directory của bạn)

Đừng quên sử dụng các ký tự mật khẩu đặc biệt.


cảm ơn. tôi đã điều hướng đến .npmrc và thay đổi cài đặt. nó hoạt động
arn-arn

53

Tải .pactập tin của bạn . Mở nó trong bất kỳ trình soạn thảo và tìm kiếm PROXY = "PROXY X.X.X.X:80;. Bạn có thể có nhiều proxy, sao chép bất kỳ proxy nào và chạy các lệnh đầu cuối sau:

npm config set proxy http://X.X.X.X:80
npm config set https-proxy http://X.X.X.X:80

Bây giờ bạn sẽ có thể cài đặt bất kỳ gói!


1
Đối với phần proxy https, tôi phải thực hiện "... đặt https-proxy = http: // ..." thay vì "... đặt https-proxy http: // ..." cho nó thành công việc. Chỉ cần $ 0,02 của tôi.
Nick

Cảm ơn cài đặt https-proxy thành http: // là điều duy nhất hoạt động; sau khi tôi bỏ đặt các biến môi trường http_proxy và https_proxy khỏi bash!
Alex Punnen

Đối với proxy https, tôi không thể đặt thành "đặt https-proxy https: /.../", tôi phải đặt thành "đặt https-proxy http: // ..." (thông tin proxy từ https -> http)
Sao Hỏa

cũng vậy với git,git config --global http.proxy http://X.X.X.X:80 git config --global https.proxy http://X.X.X.X:80
Tên mã Jack

37

Tôi đã giải quyết vấn đề này theo cách này:

1) Tôi chạy lệnh này:

npm config set strict-ssl false

2) Sau đó, đặt npm để chạy với http, thay vì https:

npm config set registry "http://registry.npmjs.org/"

3) Sau đó cài đặt gói của bạn

npm install <package name>


2
Chỉ cần chỉ ra rằng việc cài đặt ssl nghiêm ngặt của npm thành false là một vấn đề bảo mật. Thay vào đó hãy xem xét việc thiết lập đúng ca[]tài sản vào npm.
Aaron C

26

Để mở rộng câu trả lời của @Steve Roberts.

Tên người dùng của tôi có dạng "domain \ username" - bao gồm dấu gạch chéo trong cấu hình proxy dẫn đến dấu gạch chéo phía trước xuất hiện. Vì vậy, nhập vào đây:

npm config set proxy "http://domain\username:password@servername:port/"

Tôi cũng phải mã hóa URL domain\userchuỗi của mình , tuy nhiên, tôi có một khoảng trắng trong tên người dùng của mình nên tôi đặt +mã hóa URL không gian, nhưng nó sẽ được mã hóa gấp đôi dưới dạng %2B(đó là mã hóa URL cho dấu cộng, tuy nhiên URL mã hóa cho một không gian là %20), vì vậy tôi phải thay vào đó làm như sau:

lệnh 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"

xử lý sự cố cấu hình npm

Tôi đã sử dụng npm config listđể có được các giá trị được phân tích cú pháp mà tôi đã đặt ở trên và đó là cách tôi tìm ra về mã hóa kép. Kỳ dị.

Về cơ bản, bạn phải tìm ra các yêu cầu sau:

  1. Là một DOMAINchuỗi cần thiết để xác thực
  2. Bạn có cần mã hóa các ký tự đặc biệt?
    • Dấu cách và dấu (@) là những thách thức đặc biệt

Trân trọng.

VARIABLES MÔI TRƯỜNG WINDOWS (Prompt)

Cập nhật

Hóa ra ngay cả với các cấu hình trên, tôi vẫn gặp một số vấn đề với một số gói / tập lệnh sử dụng Trình khách HTTP - Đơn giản hóa nội bộ để tải xuống nội dung. Vì vậy, như đã đọc ở trên, chúng ta có thể chỉ định các biến môi trường để đặt proxy trên dòng lệnh và Yêu cầu sẽ tôn trọng các giá trị đó.

Sau đó, sau (và tôi miễn cưỡng thừa nhận điều này) một vài lần thử (giống như ngày), khi cố gắng đặt các biến môi trường cuối cùng tôi đã thành công với các nguyên tắc sau:

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

Tôi đã sử dụng kỹ thuật trên trong một vài tuần, cho đến khi tôi nhận ra chi phí cập nhật mật khẩu của mình trên tất cả các công cụ cần thiết lập proxy.

Ngoài npm, tôi cũng sử dụng:

  • bower
  • mơ hồ
    • hộp ảo (chạy linux)
    • apt-get [linux]
  • git
  • vscode
  • dấu ngoặc
  • nguyên tử
  • tsd

Các bước thiết lập cntlm

Vì vậy, tôi đã cài đặt cntlm . Cài đặt cntlmkhá ổn về phía trước, bạn tìm tệp ini @C:\Program Files\Cntlm\cntlm.ini

  1. Mở C:\Program Files\Cntlm\cntlm.ini(bạn có thể cần quyền quản trị)
  2. tìm kiếm UsernameDomaindòng (dòng 8-9 tôi nghĩ)
    • thêm tên người dùng của bạn
    • thêm tên miền của bạn
  3. Trên cmd nhanh chóng chạy:

    cd C:\Program Files\Cntlm\
    cntlm -M
    cntlm -H  
    • bạn sẽ được yêu cầu nhập mật khẩu:
     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:
  4. Đầu ra bạn nhận được cntlm -Hsẽ trông giống như:

    PassLM          561DF6AF15D5A5ADG  
    PassNT          A1D651A5F15DFA5AD  
    PassNTLMv2      A1D65F1A65D1ASD51  # Only for user 'user name', domain 'DOMAIN'
    • Chúng tôi khuyên bạn nên sử dụng PassNTLMv2 để thêm #dòng trước PassLMPassNTkhông sử dụng chúng
  5. Dán đầu ra từ cntlm -Htệp ini thay thế các dòng cho PassLM, PassNTPassNTMLv2, hoặc nhận xét các dòng gốc và thêm dòng của bạn.
  6. Thêm Proxymáy chủ của bạn . Nếu bạn không biết máy chủ proxy là gì ... Hãy làm những gì tôi đã làm, tôi đã tìm tệp tự động cấu hình proxy của mình bằng cách tìm AutoConfigURLkhóa Đăng ký HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings. Điều hướng đến url đó và xem qua mã xảy ra là JavaScript.
  7. Tùy chọn bạn có thể thay đổi cổng nơi cntlm lắng nghe bằng cách thay đổi Listen ####dòng, ####số cổng ở đâu.

Cài đặt NPM với cntlm

Vì vậy, bạn trỏ npm đến proxy cntml của bạn, bạn có thể sử dụng ip, tôi đã sử dụng localhostvà cổng mặc định cho cntlm 3128để url proxy của tôi trông như thế này

http://localhost:3128

Với lệnh thích hợp:

Cấu hình npm đặt proxy http: // localhost: 3128

Là đơn giản hơn rất nhiều. Bạn thiết lập tất cả các công cụ của mình với cùng một url và bạn chỉ cập nhật mật khẩu ở một nơi. Cuộc sống đơn giản hơn nhiều không.

Phải thiết lập chứng chỉ CA npm

Từ tài liệu npm ca

Nếu proxy công ty của bạn đang chặn các kết nối https bằng Chứng chỉ tự ký, thì đây là điều cần tránh npm config set strict-ssl false (lớn không-không).

Các bước cơ bản

  1. Nhận chứng chỉ từ trình duyệt của bạn (Chromes hoạt động tốt). Xuất nó dưới dạng X.509 được mã hóa Base-64 (.CER)
  2. Thay thế dòng mới bằng \n
  3. Chỉnh sửa .npmrcthêm một dòng của bạnca[]="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"

Các vấn đề

Tôi đã nhận thấy đôi khi npm loại treo, vì vậy tôi dừng lại (đôi khi mạnh mẽ) cntlm và khởi động lại nó.


7

Tôi đã gặp phải một số vấn đề với điều này và cuối cùng những gì tôi đã làm như sau:

  1. Fiddler đã sử dụng, với "Tự động xác thực" được chọn
  2. Trong quy tắc tùy chỉnh fiddler, tôi đã thêm

    if (m_AutoAuth) {oSession["X-AutoAuth"] = "domain\\username:password";}
  3. Cuối cùng, trong npm tôi đã đặt proxy thành http: // localhost: 8888

Điều này làm việc tốt.


Cảm ơn! Làm việc như người ở!! Kịch bản của tôi: Tên người dùng có định dạng "tên miền / tên người dùng". Mật khẩu có "@" trong đó. Không phải thực hiện bất kỳ mã hóa / giải mã URL nào, v.v.
A_B

Làm việc hoàn hảo cho tôi. Cảm ơn bạn rất nhiều. Chỉ muốn chỉ ra rằng việc sử dụng "domain\\username:password"có thể gây ra mối đe dọa bảo mật của Nhận dạng Nhận dạng. Thay vào đó, sử dụng "(default)"cấu hình trong các quy tắc tùy chỉnh làm việc một cách quyến rũ. Fiddler cần được chạy trong khi bạn sử dụng "npm" để làm việc này.
pk10

7

Đối với bất kỳ ai gặp khó khăn sau tường lửa doanh nghiệp, cũng như các sự cố với SSL (không thể nhận chứng chỉ nhà phát hành địa phương), đây là một số bước bạn có thể thử:

Quên về SSL

Nếu bạn không quan tâm đến SSL, thì bạn có thể làm theo lời khuyên của nhiều người đóng góp trước đó bằng cách đặt proxy của bạn và thay đổi sổ đăng ký thành phiên bản không bảo mật:

npm config set proxy http://username:password@proxyname:port
npm config set https-proxy http://username:password@proxyname:port
npm config set registry http://registry.npmjs.org/

Một "gotcha" nhanh chóng ở đây, thông tin đăng nhập proxy của tôi giống nhau cho các yêu cầu được bảo mật và không bảo mật (lưu ý cách tôi rời giao thức của mình dưới dạng http: // cho cấu hình proxy https ). Điều này có thể giống với bạn, và nó có thể không.

Tôi muốn giữ SSL

Nếu bạn muốn giữ SSL và không muốn sử dụng strict-ssl=false, thì bạn còn nhiều việc phải làm. Đối với tôi, tôi đứng sau một tường lửa của công ty và chúng tôi đang sử dụng các chứng chỉ tự ký, vì vậy tôi nhận được lỗi unable to get local issuer certificate. Nếu bạn ở cùng thuyền với tôi, thì bạn sẽ cần đặt cafile=tùy chọn trong tệp cấu hình npm. Trước tiên, bạn cần tạo tệp PEM chứa thông tin về chứng chỉ tự ký của bạn. Nếu bạn không biết cách thực hiện, đây là hướng dẫn cho môi trường Windows mà không cần sử dụng phần mềm của bên thứ 3:

Chúng tôi cần chỉ rõ ràng những chứng chỉ nào đáng tin cậy vì chúng tôi đang sử dụng chứng chỉ tự ký. Ví dụ của tôi, tôi đã điều hướng đến www.google.com bằng Chrome để tôi có thể lấy chứng chỉ.

Trong Chrome, đi đến Kiểm tra -> Bảo mật -> Xem Chứng chỉ. Bạn sẽ thấy tất cả các chứng chỉ cho phép kết nối SSL. Lưu ý cách các chứng chỉ này được tự ký. Phần mờ là công ty của tôi và chúng tôi không phải là Cơ quan được chứng nhận. Bạn có thể xuất đường dẫn chứng chỉ đầy đủ dưới dạng tệp P7B hoặc bạn có thể xuất chứng chỉ riêng lẻ dưới dạng tệp CER (mã hóa base64). Xuất đường dẫn đầy đủ dưới dạng P7B không giúp ích gì nhiều vì bạn sẽ lần lượt cần mở tệp này trong trình quản lý chứng chỉ và xuất dưới dạng tệp CER riêng lẻ. Trong Windows, bấm đúp vào tệp P7B sẽ mở ứng dụng Trình quản lý chứng chỉ.

nhập mô tả hình ảnh ở đây

Xuất dưới dạng CER (Base 64) thực sự là một tệp văn bản theo định dạng sau:

-----BEGIN CERTIFICATE-----
MIIGqzCCBZOgAwIBAgITIwAAABWhFPjwukYhTAADAAAAFTANBgkqhkiG9w0BAQUF
ADBFMRMwEQYKCZImiZPyLGQBGRYDY29tMRYwFAYKCZImiZPyLGQBGRYGaXJ2aW5n
b0pvCkNmjWzaNNUg2hYET+pP5nP75aRu+kPRl9UnlQ....rest of certificate...
-----END CERTIFICATE-----

Để tạo tệp PEM của chúng tôi, chúng tôi chỉ cần xếp các chứng chỉ này lên nhau thành một tệp duy nhất và thay đổi phần mở rộng thành .pem. Tôi đã sử dụng notepad để làm điều này.

Bạn xếp các chứng chỉ theo thứ tự ngược lại từ đường dẫn chứng chỉ. Vì vậy, ở trên, tôi sẽ bắt đầu với * .google.com sau đó dán Websense bên dưới nó, sau đó phát hành CA 1, v.v ... Bằng cách này, các chứng chỉ được phân tích cú pháp từ trên xuống dưới để tìm kiếm Root CA thích hợp. Đơn giản chỉ cần bao gồm Root CA sẽ không hoạt động, nhưng chúng tôi cũng không cần bao gồm tất cả các chứng chỉ. Từ đường dẫn trên, tôi chỉ cần bao gồm các chứng chỉ đi trước chứng chỉ Websense (Cấp CA 1, CA chính sách, CA gốc).

Khi các certs tự ký này được lưu vào tệp PEM, chúng tôi sẵn sàng hướng dẫn npm sử dụng các chứng chỉ này làm CA đáng tin cậy của chúng tôi. Đơn giản chỉ cần đặt tập tin cấu hình và bạn sẽ thấy tốt:

npm config set cafile "C:\yourcerts.pem"

Giờ đây, với các proxy của bạn được đặt (http và https) và đăng ký được đặt thành https://registry.npmjs.org, bạn sẽ có thể cài đặt các gói phía sau tường lửa của công ty với các chứng chỉ tự ký mà không cần strict-sslcài đặt.


6

Bạn có thể kiểm tra Fiddler nếu NPM đưa ra lỗi Xác thực. Nó rất dễ dàng để cài đặt và cấu hình. Đặt quy tắc Fiddler thành Tự động xác thực. Trong .npmrc đặt các thuộc tính này

registry=http://registry.npmjs.org
proxy=http://127.0.0.1:8888
https-proxy=http://127.0.0.1:8888
http-proxy=http://127.0.0.1:8888
strict-ssl=false

Nó làm việc cho tôi :)


thật đáng ngạc nhiên, không có cấu hình nào tôi sử dụng cho proxy của mình hoạt động, tôi đã sử dụng cái này và mở fiddler và tôi có thể sử dụng nó tốt ...
Roberto

5

Hãy thử điều này, Đặt proxy trong npm như sau

npm config set proxy "http://<user-name>:<password>@<proxy-url>:<port>"
npm config set https-proxy "http://<user-name>:<password>@<proxy-url>:<port>"
npm config set strict-ssl false
npm config set registry "http://registry.npmjs.org/"

4

Bạn sẽ nhận được máy chủ proxy và cổng từ quản trị viên hoặc bộ phận hỗ trợ của máy chủ.

Sau đó thiết lập

npm config set http_proxy http://username:password@proxyofmycomp.com:itsport
npm config set proxy http://username:password@proxyofmycomp.com:itsport

Nếu có bất kỳ ký tự đặc biệt nào trong mật khẩu, hãy thử với% urlencode. Ví dụ: - pound (băm) shuold được thay thế bằng% 23.

Điều này làm việc cho tôi ...


3

Chỉ cần tạo một tệp có tên tệp .npmrc trong thư mục dự án của bạn, nó sẽ tránh cài đặt proxy ở cấp hệ thống

#Without password
proxy=http://ipaddress:80
https-proxy=http://ipaddress:80

#With password
proxy=http://<username>:<pass>@proxyhost:<port>
https-proxy=http://<uname>:<pass>@proxyhost:<port>

Nhận xét như thế này nếu bạn không sử dụng proxy

#proxy=http://ipaddress:80
#https-proxy=http://ipaddress:80

#With password
#proxy=http://<username>:<pass>@proxyhost:<port>
#https-proxy=http://<uname>:<pass>@proxyhost:<port>

3

Không có câu trả lời nào hiện có giải thích cách sử dụng npm với tệp PAC. Một số đề nghị tải xuống tệp PAC, kiểm tra thủ công và chọn một trong các chuỗi "PROXY ...". Nhưng điều này không hoạt động nếu tệp PAC cần chọn từ nhiều proxy hoặc nếu tệp PAC chứa logic phức tạp để bỏ qua proxy cho một số URL nhất định.

Ngoài ra, một số proxy công ty yêu cầu xác thực NTLM. CNTLM có thể xử lý xác thực, nhưng không hỗ trợ các tệp PAC.

Một cách khác là sử dụng Alpaca , thực thi tệp PAC trong máy ảo JavaScript và thực hiện xác thực NTLM với proxy kết quả.


2

Nếu bạn đứng sau một mạng công ty có proxy, tôi chỉ sử dụng một công cụ proxy ntlm và sử dụng cổng và proxy được cung cấp bởi ntlm, vì tôi đã sử dụng cấu hình này:

strict-ssl=false
proxy=http://localhost:3125

Tôi hi vọng cái này giúp được.


2

Sử dụng lệnh dưới đây tại cmd hoặc GIT Bash hoặc dấu nhắc khác

$ npm config set proxy "http://192.168.1.101:4128"

$ npm config set https-proxy "http://192.168.1.101:4128"

trong đó 192.168.1.101 là ip proxy và 4128 là cổng. thay đổi theo cài đặt proxy của bạn.


2

Bạn phải sử dụng "npm config set http-proxy "

sử dụng:

npm config set http-proxy http://1.2.3.4:8181
npm config set https-proxy http://1.2.3.4:8181


1

Hãy thử điều này, đó là điều duy nhất làm việc cho tôi:

npm --proxy http: //: @proxyhost: --https-proxy http: //: @proxyhost: --strict-ssl gói cài đặt sai -g

Chú ý đến tùy chọn --strict-ssl false

Chúc may mắn.


1

Các NPM thiết lập proxy được đề cập trong câu trả lời được chấp nhận giải quyết vấn đề, nhưng khi bạn có thể thấy trong này vấn đề NPM , một số phụ thuộc sử dụng GIT và làm cho các thiết lập git ủy quyền cần thiết , và có thể được thực hiện như sau:

git config --global http.proxy http://username:password@host:port
git config --global https.proxy http://username:password@host:port

Thiết lập proxy NPM đã đề cập:

npm config set proxy "http://username:password@host:port"
npm config set https-proxy "http://username:password@host:port"
npm config set strict-ssl false
npm config set registry "http://registry.npmjs.org/"

0

Tôi gặp vấn đề tương tự và tôi đã thử tất cả các cách giải quyết ở trên nhưng không ai trong số họ làm việc cho tôi (tôi đang sử dụng các ký tự đặc biệt (như biểu tượng '@') trong mật khẩu của mình và tôi cũng cần thêm tên miền).

Ngoài ra, tôi hơi e ngại khi thêm mật khẩu của mình dưới dạng văn bản thuần túy. Hóa ra giải pháp đơn giản nhất để vượt qua tất cả những thách thức này là sử dụng một số loại proxy ngược (như Fiddler).

Tôi đã chi tiết các bước cấu hình trong câu trả lời này trong SO.


0

Thêm các dòng dưới đây trong tệp .typingsrc đã giúp tôi.

{
    "rejectUnauthorized": false,
    "registryURL" :"http://api.typings.org/"
 }

0

Tôi gặp vấn đề tương tự và phát hiện ra rằng tệp cấu hình npm của tôi (.npmrc) đang có mục đăng ký sai. bình luận nó ra và chạy lại cài đặt npm. nó đã làm việc.


0

HĐH: Windows 7

Các bước làm việc cho tôi:

  1. npm config get proxy
  2. npm config get https-proxy

  3. Nhận xét: Tôi đã thực thi lệnh này để biết cài đặt proxy của mình
    npm config rm proxy

  4. npm config rm https-proxy
  5. npm config set registry=http://registry.npmjs.org/
  6. npm install

0

Vì tôi vẫn gặp sự cố với cài đặt proxy tại nơi làm việc và tắt chúng ở nhà, tôi đã viết kịch bản và xuất bản npm-corpo-proxy.sh . Trong mỗi corpo, mật khẩu phải được thay đổi thường xuyên và phải chứa các ký tự đặc biệt, phải được mã hóa trước khi cung cấp cấu hình npm (giống với tên miền backash domain \ user).


0

Từ một tìm kiếm nhỏ trên google, điều đầu tiên tôi đã thử là

npm config set registry http://registry.npmjs.org/
npm config set proxy "your proxy"
npm config set https-proxy "your proxy"

Nhưng npm dường như vẫn mất kết nối khi cố gắng thực hiện "npm install". sau đó tôi chạy dòng này trong dấu nhắc lệnh và bây giờ tôi có thể sử dụng cài đặt npm

set NODE_TLS_REJECT_UNAUTHORIZED=0

0

Tôi không thể làm cho nó hoạt động với CNTLM. Tôi đã thử làm theo tất cả các thông tin được đăng ở trên, nhưng proxy vẫn không cho phép kết nối. Với Fiddler, bạn chỉ cần cài đặt nó và kiểm tra tùy chọn Tự động xác thực. Nhưng để làm việc, tôi phải xóa tệp .npmrc khỏi thư mục người dùng của mình và đặt các biến môi trường như được chỉ ra ở đây , với các giá trị sau:

set npm_config_https-proxy="http://127.0.0.1:8888"

set npm_config_registry="http://registry.npmjs.org/"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.