Có cách nào để cài đặt npm (lệnh) để hoạt động sau proxy không?


266

Đọc về một biến proxy trong một .npmrctệp nhưng nó không hoạt động. Cố gắng tránh tải xuống thủ công tất cả các gói yêu cầu và cài đặt.

Câu trả lời:


343

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 đó, tôi cài đặt các gói bằng cú pháp này:

    npm --proxy http://username:password@cacheaddress.com.br:80 install packagename

Bỏ qua username:passwordphần nếu proxy không yêu cầu bạn xác thực

EDIT: Một người bạn của tôi chỉ ra rằng bạn có thể khiến NPM hoạt động phía sau proxy bằng cách đặt các biến môi trường BOTH HTTP_PROXY và HTTPS_PROXY, sau đó ban hành lệnh npm install express (ví dụ)

EDIT2: Như @BStruthers đã nhận xét, hãy nhớ rằng mật khẩu chứa "@" sẽ không được phân tích cú pháp chính xác, nếu có chứa @ đặt toàn bộ mật khẩu trong dấu ngoặc kép


7
Hãy đứng lên, nếu mật khẩu của bạn chứa "@" npm sẽ không phân tích chính xác cài đặt proxy của bạn. Một cách giải quyết tiềm năng là đặt tên người dùng không có thật: mật khẩu trong cấu hình npm và sử dụng proxy cục bộ (như fiddler) để sửa đổi tiêu đề Ủy quyền ủy quyền của yêu cầu để có tên người dùng chính xác: mật khẩu. Hãy nhớ rằng tên người dùng: mật khẩu được lưu trữ trong Proxy-Authorization được mã hóa base64.
BStruthers

14
Nếu mật khẩu của bạn chứa ký hiệu @, bạn có thể vượt qua nó bằng cách đặt tên người dùng và mật khẩu của bạn trong dấu ngoặc kép.
absynthe web tâm trí smith

9
Bạn có thể có các ký tự đặc biệt trong mật khẩu của mình, nhưng chúng phải được mã hóa url. Vì vậy, nếu mật khẩu của bạn là my@password, tệp .npmrc của bạn sẽ có my%40passwordphần mật khẩu. Đặt nó trong dấu ngoặc kép hoạt động trong một số trường hợp, nhưng mã hóa nó là hoàn hảo.
Chris Jaynes

1
Một Gotcha khác! Nếu bạn đã đặt các biến hệ thống trước đó, HTTP-PROXY, hãy đảm bảo bạn xóa chúng!
Sydwell

1
Bạn huyền thoại! Tôi đã từ bỏ việc cố gắng để có được npm để làm việc tại nơi làm việc, nhưng điều này cuối cùng đã giải quyết nó.
tamj0rd2

308

Cài đặt npmproxy

Dành cho HTTP:

npm config set proxy http://proxy_host:port

Dành cho HTTPS:

sử dụng địa chỉ proxy https nếu có

npm config set https-proxy https://proxy.company.com:8080

sử dụng lại địa chỉ proxy http

npm config set https-proxy http://proxy.company.com:8080

Lưu ý : Proxy https không có httpsgiao thức, nhưng http.


9
Không hỗ trợ SOCKS?
grm

57
Lưu ý rằng proxy https không có 'https' làm giao thức, nhưng 'http'. Thay đổi điều này đã giải quyết vấn đề cho tôi.
peterhil

3
@peterhil Cảm ơn vì mẹo đó. Thật điên rồ nhưng tôi đã dành hàng giờ để giải quyết vấn đề này bằng "https". Bất cứ ý tưởng tại sao nó hoạt động như thế này?
Manoj NV

2
@ManojNV, kết nối đến máy chủ proxy không được mã hóa. Đó không phải là nói chuyện HTTPS với máy chủ proxy, chỉ là HTTP. Tải trọng là SSL giữa máy khách và máy chủ đích. Nếu đó là HTTPS đến máy chủ proxy, thì mọi thứ sẽ được mã hóa / giải mã hai lần.
Jamie

1
Tế nhị. Cảm ơn rất nhiều @peterhil
Alec Breton

104

Khi nghi ngờ, hãy thử tất cả các lệnh này, như tôi làm:

npm config set registry http://registry.npmjs.org/
npm config set proxy http://myusername:mypassword@proxy.us.somecompany:8080
npm config set https-proxy http://myusername:mypassword@proxy.us.somecompany:8080
npm config set strict-ssl false
set HTTPS_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
set HTTP_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
export HTTPS_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
export HTTP_PROXY=http://myusername:mypassword@proxy.us.somecompany:8080
export http_proxy=http://myusername:mypassword@proxy.us.somecompany:8080

npm --proxy http://myusername:mypassword@proxy.us.somecompany:8080 \
--without-ssl --insecure -g install

=======

CẬP NHẬT

Đặt cài đặt của bạn vào ~/.bashrchoặc ~/.bash_profileđể bạn không phải lo lắng về cài đặt của mình mỗi khi bạn mở một cửa sổ đầu cuối mới!

Nếu công ty của bạn giống như tôi, tôi phải thay đổi mật khẩu khá thường xuyên. Vì vậy, tôi đã thêm các mục sau vào ~ / .bashrc hoặc ~ / .bash_profile để bất cứ khi nào tôi mở một thiết bị đầu cuối, tôi biết npm của tôi được cập nhật!

  1. Chỉ cần dán đoạn mã sau vào cuối ~/.bashrctệp của bạn :

    ######################
    # User Variables (Edit These!)
    ######################
    username="myusername"
    password="mypassword"
    proxy="mycompany:8080"
    
    ######################
    # Environement Variables
    # (npm does use these variables, and they are vital to lots of applications)
    ######################
    export HTTPS_PROXY="http://$username:$password@$proxy"
    export HTTP_PROXY="http://$username:$password@$proxy"
    export http_proxy="http://$username:$password@$proxy"
    export https_proxy="http://$username:$password@$proxy"
    export all_proxy="http://$username:$password@$proxy"
    export ftp_proxy="http://$username:$password@$proxy"
    export dns_proxy="http://$username:$password@$proxy"
    export rsync_proxy="http://$username:$password@$proxy"
    export no_proxy="127.0.0.10/8, localhost, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16"
    
    ######################
    # npm Settings
    ######################
    npm config set registry http://registry.npmjs.org/
    npm config set proxy "http://$username:$password@$proxy"
    npm config set https-proxy "http://$username:$password@$proxy"
    npm config set strict-ssl false
    echo "registry=http://registry.npmjs.org/" > ~/.npmrc
    echo "proxy=http://$username:$password@$proxy" >> ~/.npmrc
    echo "strict-ssl=false" >> ~/.npmrc
    echo "http-proxy=http://$username:$password@$proxy" >> ~/.npmrc
    echo "http_proxy=http://$username:$password@$proxy" >> ~/.npmrc
    echo "https_proxy=http://$username:$password@$proxy" >> ~/.npmrc
    echo "https-proxy=http://$username:$password@$proxy" >> ~/.npmrc
    
    ######################
    # WGET SETTINGS
    # (Bonus Settings! Not required for npm to work, but needed for lots of other programs)
    ######################
    echo "https_proxy = http://$username:$password@$proxy/" > ~/.wgetrc
    echo "http_proxy = http://$username:$password@$proxy/" >> ~/.wgetrc
    echo "ftp_proxy = http://$username:$password@$proxy/" >> ~/.wgetrc
    echo "use_proxy = on" >> ~/.wgetrc
    
    ######################
    # CURL SETTINGS
    # (Bonus Settings! Not required for npm to work, but needed for lots of other programs)
    ######################
    echo "proxy=http://$username:$password@$proxy" > ~/.curlrc
  2. Sau đó chỉnh sửa các trường "tên người dùng", "mật khẩu" và "proxy" trong mã bạn đã dán.

  3. Mở một thiết bị đầu cuối mới

  4. Kiểm tra cài đặt của bạn bằng cách chạy npm config listcat ~/.npmrc

  5. Cố gắng cài đặt mô-đun của bạn bằng cách sử dụng

    • npm install __, hoặc là
    • npm --without-ssl --insecure install __, hoặc là
    • ghi đè cài đặt proxy của bạn bằng cách sử dụng npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install __.
    • Nếu bạn muốn mô-đun có sẵn trên toàn cầu, hãy thêm tùy chọn -g

3
Lệnh cuối cùng làm việc cho tôi. Tất cả những cái trước đó đều thất bại
foecum 2/215

3
Tôi đã đọc khoảng 50 câu trả lời liên quan đến cấu hình proxy này ... chỉ có câu trả lời là ... câu cảm ơn của bạn !!!
Lorenzo

4
Cảm ơn các bạn!! Vui mừng khi nó hoạt động! Điều này đã gây đau đầu rất lớn trong công việc vì vậy tôi rất vui vì tôi có thể giúp đỡ người khác: P
Katie

2
+1. Những công việc này. Tôi đã từng commands- npm config set registry http://registry.npmjs.org/, npm config set proxy http://myusername:mypassword@proxy.us.somecompany:8080, npm config set https-proxy http://myusername:mypassword@proxy.us.somecompany:8080, npm config set strict-ssl falsecho cấu hình NPM và sau đó cài đặt gói NPM sử dụng npm --proxy http://myusername:mypassword@proxy.us.somecompany:8080 --without-ssl --insecure -g install {packagename}. Cảm ơn
Atur

1
Sau ba ngày thử giải pháp này đã làm việc cho tôi.
Mohan Singh

33

Bạn đã thử các tùy chọn dòng lệnh thay vì .npmrctệp?

Tôi nghĩ rằng một cái gì đó như npm --proxy http://proxy-server:8080/ install {package-name}làm việc cho tôi.

Tôi cũng đã thấy như sau: npm config set proxy http://proxy-server:8080/


+1 tôi đã thử những cái khác đây là cái đã làm việc cho tôi. với phần xác thực từ Renato Gama
chiến thắng_joiner

20

Mặc dù đã có nhiều lời khuyên tốt, nhưng đối với môi trường của tôi (Windows 7, sử dụng PowerShell) và phiên bản cuối cùng có sẵn của node.js (v8.1.2), tất cả các cách trên đều không hoạt động, ngoại trừ khi tôi làm theo các cài đặt của brunowego .

Vì vậy, hãy kiểm tra cài đặt của bạn với:

npm config list

Cài đặt phía sau proxy:

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

Hy vọng điều này sẽ tiết kiệm thời gian cho ai đó


Làm thế nào để tôi tìm thấy địa chỉ proxy của tôi?
Robin

@Robin Một cách, nếu sử dụng windows, IE sẽ lưu trữ chúng. Bạn có thể vào IE và xem các cài đặt LAN theo kết nối và nó sẽ hiển thị ở đó.
Eaglei22

@Robin tất nhiên phụ thuộc vào trình duyệt, nhưng thường là trong cài đặt
Carmine Tambascia

@Robin trong trình duyệt dưới cài đặt, bạn sẽ thấy / kiểm tra cài đặt proxy. Thông thường có một tệp có .pac trong đó lượt thích cuối cùng là: PROXY YourProxyAdress: PORT
Carmine Tambascia

17

Điều này làm việc cho tôi trong Windows:

npm config set proxy http://domain%5Cuser:pass@host:port

Nếu bạn không ở trong bất kỳ miền nào, hãy sử dụng:

npm config set proxy http://user:pass@host:port

Nếu mật khẩu của bạn chứa các ký tự đặc biệt như ", @, :và như vậy, thay thế chúng bằng URL mã hóa giá trị của họ. Ví dụ ":> %22, @-> %40, :-> %3A. %5Cđược sử dụng cho các nhân vật \.


6
Cảm ơn lời khuyên, điều này làm việc cho tôi. Bạn có thể mở bảng điều khiển javascript của mình bằng ctrl + shift + j và nhập encodeURIComponent("YourP@ssword")để lấy phiên bản được mã hóa của mật khẩu.
jaggedsoft

15

Để thiết lập proxy http, hãy đặt cờ -g :

sudo npm config set proxy http://proxy_host:port -g

Đối với proxy https, một lần nữa đảm bảo cờ -g được đặt:

sudo npm config set https-proxy http://proxy_host:port -g


ý nghĩa của -g là gì?
David

1
thiết lập nó trên toàn cầu, không phải cho cài đặt cục bộ
Andrei

8
$ npm config set proxy http://login:pass@host:port
$ npm config set https-proxy http://login:pass@host:port

1
Xin vui lòng thêm một số ý kiến.
Tối đa

8

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

npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
npm set strict-ssl=false

7

vim ~/.npmrctrong máy Linux của bạn và thêm vào sau. Đừng quên thêm registrymột phần vì điều này gây ra thất bại trong nhiều trường hợp.

proxy=http://<proxy-url>:<port>
https-proxy=https://<proxy-url>:<port>
registry=http://registry.npmjs.org/

2
Nhiều proxy hỗ trợ các yêu cầu https đường hầm, nhưng chúng sẽ không tự xử lý kết nối https. Do đó, khi gặp sự cố, hãy thử sửa đổi https-proxy=https://..thànhhttps-proxy=http://..
YoYo

7

Cuối cùng tôi đã quản lý để giải quyết vấn đề này là phía sau proxy với xác thực AD. Tôi đã phải thực hiện:

npm config set proxy http://domain%5Cuser:password@proxy:port/
npm config set https-proxy http://domain%5Cuser:password@proxy:port/

Điều rất quan trọng là mã hóa URL bất kỳ ký tự đặc biệt nào như backshlash hoặc # Trong trường hợp của tôi, tôi phải mã hóa

  1. backshlashvới% 5C nên domain\user willđượcdomain%5Cuser
  2. #ký với %23%0Amật khẩu như vậy Password#2sẽ đượcPassword%23%0A2

Tôi cũng đã thêm các cài đặt sau:

npm config set strict-ssl false
npm config set registry http://registry.npmjs.org/

6

Mặc dù tôi đặt proxy với cấu hình, vấn đề không được giải quyết nhưng sau đó, cái này hoạt động với tôi:

npm --https-proxy http://XX.AA.AA.BB:8080 cài đặt cordova-plugin

npm --proxy http://XX.AA.AA.BB:8080 cài đặt


Điều này làm việc cho tôi, không có thay đổi khác. Mở cửa sổ lệnh và sử dụng ở trên và nó sẽ hoạt động
AKS

6

Tôi đã thử tất cả các tùy chọn này, nhưng proxy của tôi không có bất kỳ tùy chọn nào vì một số lý do. Sau đó, sinh ra từ sự miệt thị / tuyệt vọng, tôi đã thử ngẫu nhiên curltrong vỏ Git Bash của mình và nó đã hoạt động.

Bỏ cài đặt tất cả các tùy chọn proxy bằng cách sử dụng

npm config rm proxy
npm config rm https-proxy

Và sau đó chạy npm installtrong vỏ Git Bash của tôi hoạt động hoàn hảo. Tôi không biết làm thế nào nó được thiết lập chính xác cho proxy và cmdlời nhắc của Windows thì không, nhưng nó đã hoạt động.


6
npm config set proxy <http://...>:<port_number>
npm config set registry http://registry.npmjs.org/

Điều này đã giải quyết vấn đề của tôi.


Điều quan trọng là thay đổi liên kết đến sổ đăng ký: thay vì https tôi đã có trước đây để liên kết http.
Alex Fainshtein

6

Sau khi buộc các câu trả lời khác nhau cuối cùng, bốn dòng đầu tiên của câu trả lời của @Kayvar giúp tôi giải quyết vấn đề:

npm config set registry http://registry.npmjs.org/
npm config set proxy http://myusername:mypassword@proxy.us.somecompany:8080
npm config set https-proxy http://myusername:mypassword@proxy.us.somecompany:8080
npm config set strict-ssl false


5

Hãy thử tìm .npmrc trong C: \ Users \ .npmrc

sau đó mở (notepad), viết và lưu bên trong:

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

PS: xóa "<" và ">" vui lòng !!


5

Đối với tôi mặc dù python v.v ... tất cả sẽ hoạt động mặc dù npm proxy công ty của chúng tôi sẽ không.

Tôi đã thử

npm config set proxy http://proxyccc.xxx.ca:8080 npm config set https-proxy https://proxyccc.xxx.ca:8080 npm config set registry http://registry.npmjs.org/

như được hướng dẫn nhưng vẫn nhận được cùng một lỗi.

Chỉ đến khi tôi gỡ bỏ https-proxy https://proxyccc.xxx.ca:8080 tệp .npmrc thì npm mới cài đặt electron --save-dev mới hoạt động


1
Bạn https-proxycó lẽ không phải https:. Ít nhất, có cùng một cổng cho mỗi cái có lẽ không đúng, nhưng tôi nghĩ cả hai có thể có cùng một giá trị.
babkaufmann

5

Trên hệ thống Windows

Hãy thử xóa proxy và cài đặt đăng ký (nếu đã được đặt) và đặt biến môi trường trên dòng lệnh thông qua

SET HTTP_PROXY=http://username:password@domain:port
SET HTTPS_PROXY=http://username:password@domain:port

sau đó thử chạy cài đặt npm. Bằng cách này, bạn sẽ không đặt proxy trong .npmrc nhưng phiên đó sẽ hoạt động.


Điều này làm việc cho tôi. Biểu tượng bằng là những gì dường như làm cho tất cả hoạt động. Trước đó tôi chỉ sử dụng SET HTTP_PROXY http://username:password@domain:portnhưng chuyển sang SET HTTP_PROXY=http://username:password@domain:portdường như để mọi thứ hoạt động
Dib

4

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

Cấu hình $ npm đặt proxy " http://192.168.1.101:4128 "

Cấu hình $ npm đặt 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. nó làm việc cho tôi


1
Tôi đã sử dụng một tên miền để xác thực và tôi đã sử dụng thoát dấu gạch chéo ngược: với chuỗi% 5C này. Nó đã làm việc cuối cùng!
Francesco

4

Rất nhiều ứng dụng (ví dụ npm) có thể sử dụng cài đặt proxy từ các biến môi trường người dùng.

Bạn chỉ có thể thêm vào môi trường của mình theo các biến HTTP_PROXYHTTPS_PROXY sẽ có cùng giá trị cho mỗi biến

http: // người dùng: password @ proxyAddress: proxyPort

Ví dụ: nếu bạn có Windows, bạn có thể thêm proxy như sau:

Nó trông như thế nào trên Windows


4

Trong trường hợp của tôi, tôi đã quên đặt "http: //" trong các tệp cấu hình của mình (có thể tìm thấy trong các địa chỉ proxy C: \ Users \ [USERNAME] \ .npmrc). Vì vậy, thay vì có

proxy=http://[IPADDRESS]:[PORTNUMBER]
https-proxy=http://[IPADDRESS]:[PORTNUMBER]

Tôi đã có

proxy=[IPADDRESS]:[PORTNUMBER]
https-proxy=[IPADDRESS]:[PORTNUMBER]

Điều này tất nhiên không hoạt động, nhưng các thông báo lỗi cũng không giúp được gì nhiều ...


4

Đã có nhiều câu trả lời ở trên cho câu hỏi này, nhưng không có câu trả lời nào phù hợp với tôi. Tất cả chúng được đề cập để thêm http://tiền tố. Vì vậy, tôi cũng thêm nó. Tất cả đều thất bại.

Cuối cùng nó hoạt động sau khi tôi vô tình loại bỏ http://tiền tố. Cấu hình cuối cùng là như thế này:

npm config set registry http://registry.npmjs.org/
npm config set http-proxy ip:port
npm config set https-proxy ip:port
npm config set proxy ip:port
npm set strict-ssl false

Tôi không biết logic đằng sau này, nhưng nó đã hoạt động. Nếu không có câu trả lời nào ở trên phù hợp với bạn, có lẽ bạn có thể thử theo cách này. Hy vọng điều này là hữu ích.


4

Có thông tin tốt trên trang của curl về các vấn đề SSL và chứng chỉ . Tôi căn cứ hầu hết câu trả lời của tôi vào thông tin ở đó.

Sử dụng sai-ssl sai là thực tiễn xấu và có thể tạo ra vấn đề. Thay vào đó, những gì chúng ta có thể làm là thêm chứng chỉ đang được tiêm, bởi chứng chỉ "người ở giữa".

Cách giải quyết vấn đề này trên Windows:

  1. Tải xuống Chứng chỉ CA từ curl dựa trên gói CA của Mozilla. Bạn cũng có thể sử dụng shellscript "firefox-db2pem.sh" của curl để chuyển đổi cơ sở dữ liệu Firefox cục bộ của mình.
  2. Truy cập trang web bằng https, ví dụ: Stackoverflow trong Chrome hoặc Internet Explorer
  3. Nhấp vào biểu tượng khóa, nhấp vào Xem chứng chỉ hoặc "Hợp lệ" trong Chrome
  4. Điều hướng đến đường dẫn Chứng nhận. Chứng chỉ hàng đầu, hoặc chứng chỉ gốc là chứng chỉ chúng tôi muốn trích xuất. Nhấp vào chứng chỉ đó và sau đó "xem chứng chỉ"
  5. Nhấp vào tab thứ hai, "Chi tiết". Nhấp vào "Sao chép vào tập tin". Chọn định dạng DER và ghi chú nơi bạn lưu tệp. Chọn một tên tệp phù hợp, như rootcert.cer
  6. Nếu bạn đã cài đặt Git, bạn sẽ có openssl.exe. Nếu không, cài đặt git cho windows ở giai đoạn này. Nhiều khả năng tệp thực thi openssl sẽ có tại C: \ Program Files \ git \ usr \ bin \ openssl.exe. Chúng tôi sẽ sử dụng openssl để chuyển đổi tệp sang định dạng PEM mà chúng tôi cần để NPM hiểu nó.
  7. Chuyển đổi tệp bạn đã lưu trong bước 5 bằng cách sử dụng lệnh này:
    openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text
    trong đó rootcert là tên tệp của chứng chỉ bạn đã lưu trong bước 5.
  8. Mở outcert.pem trong trình soạn thảo văn bản đủ thông minh để hiểu các kết thúc dòng, vì vậy không phải là notepad. Chọn tất cả các văn bản và sao chép nó vào clipboard.
  9. Bây giờ chúng tôi sẽ dán nội dung đó vào cuối gói Chứng chỉ CA được thực hiện ở bước 1. Vì vậy, hãy mở cacert.pem trong trình soạn thảo văn bản nâng cao của bạn. Đi đến cuối tập tin và dán nội dung từ bước trước đến cuối tập tin. (Giữ nguyên dòng trống bên dưới những gì bạn vừa dán)
  10. Sao chép cabundle.pem đã lưu vào một nơi thích hợp. Ví dụ:% userprofile% hoặc ~. Ghi chú vị trí của tập tin.
  11. Bây giờ chúng tôi sẽ nói với npm / sợi để sử dụng gói mới. Trong một dòng lệnh, viết
    npm config set cafile **C:\Users\username\cacert.pem
    trong đó C: \ Users \ username \ cacert.pem là đường dẫn từ bước 10.
  12. Tùy chọn: bật lại ssl nghiêm ngặt, npm config set strict-ssl true

Phù! Chúng tôi thực hiện nó! Bây giờ npm có thể hiểu làm thế nào để kết nối. Phần thưởng là bạn có thể yêu cầu curl sử dụng cùng một cabundle.pem và nó cũng sẽ hiểu HTTP.


3

Dưới đây là các bước mà tôi đã làm theo (Windows):

  1. Chỉnh sửa tập tin sau C:\Users\<WIN_USERNAME>\.npmrc
  2. Xuất chứng chỉ vào hệ thống tệp của bạn từ địa chỉ sau: https://registry.npmjs.org

  3. Điều hướng đến vị trí chứng chỉ đã xuất và ban hành lệnh sau:

    npm config set cafile npm_certificate.cer

  4. Thêm các thay đổi sau vào tệp: registry=https://registry.npmjs.org/ strict-ssl=false https-proxy=http://[proxy_user]:[proxy_password]@[proxy_ip]:[proxy_port]/ cafile=npm_certificate.cer

Bây giờ bạn nên sẵn sàng để đi!


2

Vấn đề của tôi đã đi đến một sai lầm ngớ ngẩn về phía tôi. Vì một ngày nọ, tôi đã nhanh chóng bỏ các proxy của mình vào một tệp windows * .bat (http_proxy, https_proxy và ftp_proxy), tôi đã quên thoát các ký tự đặc biệt cho miền được mã hóa url \ user (% 5C) và mật khẩu có dấu chấm hỏi '?' (% 3F). Điều đó có nghĩa là, một khi bạn có lệnh được mã hóa, đừng quên thoát '%' trong lệnh tập tin bat.

tôi đã thay đổi

set http_proxy=http://domain%5Cuser:password%3F@myproxy:8080

đến

set http_proxy=http://domain%%5Cuser:password%%3F@myproxy:8080

Có thể đó là một trường hợp cạnh nhưng hy vọng nó sẽ giúp được ai đó.


1

khi tôi cung cấp mà không có tiền tố http / http trong cài đặt proxy thì npm không thành công ngay cả khi máy chủ proxy và cổng là giá trị đúng. Nó chỉ hoạt động sau khi thêm tiền tố giao thức.


0

Chỉ cần mở thiết bị đầu cuối mới và gõ npm config editnpm config -g edit. Đặt lại về mặc định. Sau khi đóng thiết bị đầu cuối đó, mở cái mới và gõ npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install <package>nếu bạn cần trên toàn cầu chỉ cần thêm -g.

Nó làm việc cho tôi, hy vọng nó sẽ làm việc cho bạn :)

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.