programing

npm이 프록시 뒤에서 작업할 수 있도록 설치(명령)하는 방법이 있습니까?

muds 2023. 5. 11. 21:59
반응형

npm이 프록시 뒤에서 작업할 수 있도록 설치(명령)하는 방법이 있습니까?

의프변대알에서 에 대해 ..npmrc파일이 작동하지 않습니다.수동으로 모든 패키지를 다운로드하지 않고 설치해야 합니다.

저는 이 문제를 다음과 같이 해결했습니다.

  1. 다음 명령을 실행합니다.

    npm config set strict-ssl false
    
  2. 그런 다음 https 대신 http로 실행하도록 npm을 설정합니다.

    npm config set registry "http://registry.npmjs.org/"
    
  3. 그런 다음 다음 구문을 사용하여 패키지를 설치합니다.

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

건기뛰를 .username:password 경우 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ

편집: 방금 제 친구가 HTTP_PROXY 및 HTTPS_PROXY 환경 변수를 모두 설정한 다음 일반적으로 npm install express 명령을 실행하여 NPM이 프록시 뒤에서 작업하도록 할 수 있다고 지적했습니다.

EDIT2: @BStruthers가 언급했듯이 "@"가 포함된 암호는 올바르게 구문 분석되지 않습니다. @가 포함된 경우 전체 암호를 따옴표로 묶습니다.

세다npm

위해서HTTP:

npm config set proxy http://proxy_host:port

위해서HTTPS:

프록시 주소가 있는 경우 https 프록시 주소 사용

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

그렇지 않으면 http 프록시 주소를 재사용합니다.

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

참고: https-proxy에는 다음이 없습니다.https 의으로서, 그나러.http.

의심스러운 경우 다음 명령을 모두 사용해 보십시오.

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

=======

갱신하다

을 설정위에 합니다.~/.bashrc또는~/.bash_profile따라서 새로운 터미널 창을 열 때마다 설정에 대해 걱정할 필요가 없습니다!

당신의 회사가 나와 같다면, 나는 비밀번호를 자주 바꿔야 합니다. 자주 바꿔야 합니다.그래서 터미널을 열 때마다 npm이 최신 상태임을 알 수 있도록 ~/.bashrc 또는 ~/.bash_profile에 다음을 추가했습니다!

  1. 에▁at▁▁of▁▁the▁paste 아래에 다음 코드를 만 하면 됩니다.~/.bashrc파일 이름:

    ######################
    # 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. 그런 다음 붙여넣은 코드의 "사용자 이름", "비밀번호" 및 "프록시" 필드를 편집합니다.

  3. 새 터미널 열기

  4. 를 실행하여 합니다.npm config list그리고.cat ~/.npmrc

  5. 다음을 사용하여 모듈을 설치해 보십시오.

    • npm install __또는
    • npm --without-ssl --insecure install __또는
    • 를 사용하여 프록시 합니다.npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install __.
    • 전체적으로 할 수 있도록 옵션을 합니다.-g

대신 명령줄 옵션을 사용해 보셨습니까?.npmrc 파일?

제 생각에는 그런 것 같아요.npm --proxy http://proxy-server:8080/ install {package-name}저를 위해 일했습니다.

는 또한 는저다다음것보았니습도같은과.npm config set proxy http://proxy-server:8080/

이미 많은 좋은 조언이 있지만, 내 환경(Windows 7, PowerShell 사용)과 node.js(v8.1.2)의 최신 버전에 대해서는 brunowwego 설정을 따를 때를 제외하고는 위의 모든 것이 작동하지 않았습니다.

따라서 다음을 사용하여 설정을 확인합니다.

npm config list

프록시 뒤의 설정:

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

이것이 누군가에게 시간을 절약하기를 바랍니다.

이것은 Windows에서 작동합니다.

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

도메인에 없는 경우 다음을 사용합니다.

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

에 암에다같특은문포수경함우된자와 같은 되어 있는 ",@,:URL 인코딩 값으로 대체합니다.를 들어 를들면입니다."->%22,@->%40,:->%3A.%5C는 캐터에사니다용됩릭▁character 캐릭터에 사용됩니다.\.

http 프록시를 설정하려면 -g 플래그를 설정합니다.

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

https 프록시의 경우 다시 -g 플래그가 설정되어 있는지 확인합니다.

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

이건 내게 효과가 있었어요

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

마침내 저는 AD 인증으로 프록시 뒤에 있는 이 문제를 해결할 수 있었습니다.실행해야 했습니다.

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

백슬래시 또는 #와 같은 특수 문자를 URL로 인코딩하는 것이 매우 중요합니다.

  1. backshlash so %5C so 로domain\user will있다domain%5Cuser
  2. #와 계약을 맺다.%23%0A그래서 비밀번호는 다음과 같습니다.Password#2▁▁be 될 것입니다.Password%23%0A2

다음 설정도 추가했습니다.

npm config set strict-ssl false
npm config set registry http://registry.npmjs.org/
$ npm config set proxy http://login:pass@host:port
$ npm config set https-proxy http://login:pass@host:port

구성을 사용하여 프록시를 설정했지만 문제가 해결되지 않았습니다. 하지만 이것이 작동한 후:

npm --https-proxy http://XX.AA.AA.BB:8080 cordova-plugins 설치

npm --proxy http://XX.AA.AA.BB:8080 설치

vim ~/.npmrc다음을 추가합니다.추가하는 것을 잊지 마십시오.registry대부분의 경우 고장을 일으킵니다.

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

저는 이 모든 옵션을 시도했지만, 제 대리인은 어떤 이유에서인지 이 옵션을 사용하지 않았습니다.그 후, 절망에서 태어나 무작위로 시도했습니다.curl내 깃 배시 껍질에서, 그리고 그것은 효과가 있었습니다.

다음을 사용하여 모든 프록시 옵션 설정 해제

npm config rm proxy
npm config rm https-proxy

그리고 달리는 것.npm install내 Git Bash 쉘은 완벽하게 작동했습니다.cmd프롬프트는 아니지만 효과가 있었습니다.

윈도우즈 시스템에서

프록시 및 레지스트리 설정(이미 설정된 경우)을 제거하고 명령줄에서 다음을 통해 환경 변수를 설정합니다.

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

그런 다음 npm 설치를 실행해 보십시오.이렇게 하면 .npmrc에서 프록시를 설정하지 않고 해당 세션에서 작동합니다.

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

이것으로 저의 문제가 해결되었습니다.

@Kayvar는 마지막으로 서로 다른 답변을 제시한 후 처음 네 줄을 통해 문제를 해결할 수 있습니다.

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

이것은 저에게 효과가 있었습니다.http 및 https 프록시를 설정합니다.

  • npm config set proxy http://proxy.company.com:8080
  • npm 구성 세트 https-https-https http://proxy.company.com:8080

비록 우리 회사의 프록시 npm이 작동하지 않지만, 나에게는 파이썬 등이 모두 작동할 것입니다.

나는 노력했다.

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/

지시된 대로 하지만 계속해서 같은 오류가 발생했습니다.

그것은 내가 제거했을 때 뿐입니다. https-proxy https://proxyccc.xxx.ca:8080이 설치한 workednpm install electron --save-dev 파일의 .npmrc 입니다.

이 경우 구성 파일(C: \Users \ [USERNAME] \ .npmrc) 프록시 주소에서 "http://"를 설정하는 것을 잊었습니다.그래서 가지고 있는 대신에.

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

나는 가지고 있었습니다

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

물론 효과가 없었지만 오류 메시지도 큰 도움이 되지 않았습니다.

SSL인증서 문제에 대한 curl의 페이지에 좋은 정보가 있습니다.저는 제 대답의 대부분을 거기에 있는 정보에 기초합니다.

strict-ssl false를 사용하는 것은 잘못된 관행이며 문제를 일으킬 수 있습니다.대신 우리가 할 수 있는 것은 "중간에 있는 사람" 인증서에 의해 주입되는 인증서를 추가하는 것입니다.

Windows에서 이 문제를 해결하는 방법:

  1. Mozilla의 CA 번들에 따라 curl에서 CA 인증서를 다운로드합니다.curl의 "firefox-db2pem.sh " 셸 스크립트를 사용하여 로컬 Firefox 데이터베이스를 변환할 수도 있습니다.
  2. https를 사용하여 웹 페이지로 이동(예: Chrome 또는 Internet Explorer의 스택 오버플로)
  3. 잠금 아이콘을 클릭하고 인증서 보기 또는 Chrome에서 "유효"를 클릭합니다.
  4. 인증 경로로 이동합니다.최상위 인증서 또는 루트 인증서가 추출할 인증서입니다.해당 인증서를 누른 후 "인증서 보기"
  5. 두 번째 탭인 "상세 정보"를 클릭합니다.파일로 복사를 누릅니다.DER 형식을 선택하고 파일을 저장할 위치를 기록합니다.rootcert.cer와 같은 적절한 파일 이름을 선택합니다.
  6. Git이 설치되어 있으면 openssl.exe가 설치됩니다.그렇지 않으면 이 단계에서 Windows용 Git를 설치합니다.대부분의 openssl 실행 파일은 C:\Program Files\git\usr\bin\openssl.exe에 있습니다.우리는 openssl을 사용하여 파일을 NPM이 이해하는 데 필요한 PEM 형식으로 변환할 것입니다.
  7. 다음 명령을 사용하여 5단계에서 저장한 파일을 변환합니다.
    openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text
    여기서 rootcert는 5단계에서 저장한 인증서의 파일 이름입니다.
  8. 메모장이 아닌 줄 끝 부분을 이해할 수 있을 정도로 스마트한 텍스트 편집기에서 outcert.pem을 엽니다.
  9. -------------------------------------------------------------------------------------------------------------------------------------------------------------------
  10. 이제 1단계에서 작성한 CA Cert 번들의 끝에 해당 내용을 붙여넣습니다.고급 텍스트 편집기에서 cacert.pem을 엽니다.파일의 끝으로 이동하여 이전 단계의 내용을 파일의 끝으로 붙여넣습니다. (붙여넣은 내용 아래의 빈 줄을 유지합니다.)
  11. 저장된 케이블을 복사합니다.적당한 곳에 핍박하다예: %userprofile% 또는 ~. 파일의 위치를 기록합니다.
  12. 이제 우리는 npm/yarn에게 새로운 번들을 사용하라고 말할 것입니다.명령줄에 다음과 같이 기록합니다.
    npm config set cafile **C:\Users\username\cacert.pem**
    여기서 C:\Users\username\cacert.pem은 10단계의 경로입니다.
  13. 다시 합니다. " " ": strict-ssl"은 다음과 같습니다.npm config set strict-ssl true

휴! 우리가 해냈어요!이제 npm은 연결 방법을 이해할 수 있습니다.추가적인 것은 당신이 컬에게 같은 캐번들을 사용하라고 말할 수 있다는 것입니다.pem 그리고 그것은 또한 HTTP를 이해할 것입니다.

cmd 또는 GIT Bash 또는 기타 프롬프트에서 아래 명령 사용

npm config set 프록시 "http://192.168.1.101:4128"

npm config set https-https://192.168.1.101:4128"

여기서 192.168.1.101은 proxy ip이고 4128은 port입니다. 프록시 설정에 따라 변경합니다.저한테는 효과가 있어요.

C:에서 .npmrc를 찾습니다.\사용자\.npmrc

그런 다음 열기(열기), 쓰기 및 내부 저장:

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

PS: "<" 및 ">"를 제거하십시오!!

많은 애플리케이션(예: npm)이 사용자 환경 변수의 프록시 설정을 사용할 수 있습니다.

각 변수에 대해 동일한 값을 갖는 변수 HTTP_PROXY 및 HTTPS_PROXY를 환경에 추가하기만 하면 됩니다.

http://user:password@proxyAddress:proxyPort

예를 들어 Windows(윈도우)를 사용하는 경우 다음과 같이 프록시를 추가할 수 있습니다.

Windows에서 표시되는 방식

위에서 이 질문에 대한 많은 답변이 있었지만, 저는 그 중 어떤 것도 도움이 되지 않았습니다.추가하기 위해 언급된 모든 항목http://ㅠㅠㅠㅠ 요.그래서 저도 추가했어요.모두 실패했습니다.

실수로 제거한 후에 드디어 작동합니다.http://다음과 .최종 구성은 다음과 같습니다.

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

저는 이것의 논리를 모르지만, 효과가 있었습니다.위의 답변 중 아무 것도 사용할 수 없는 경우 이 방법을 사용해 볼 수 있습니다.이것이 유용하기를 바랍니다.

다음은 수행한 단계(Windows)입니다.

  1. 파일을 합니다.C:\Users\<WIN_USERNAME>\.npmrc
  2. 다음 주소에서 파일 시스템으로 인증서를 내보냅니다. https://registry.npmjs.org

  3. 내보낸 인증서 위치로 이동하여 다음 명령을 실행합니다.

    npm config set cafile npm_certificate.cer

  4. 과 같은 사항을 합니다.registry=https://registry.npmjs.org/ strict-ssl=false https-proxy=http://[proxy_user]:[proxy_password]@[proxy_ip]:[proxy_port]/ cafile=npm_certificate.cer

이제 여러분은 갈 준비가 되어 있어야 합니다!

새 터미널을 열고 입력하십시오.npm config edit그리고.npm config -g edit기본값으로 재설정합니다. " 널을닫은후새터을열고입다다력니합음을널미터미,다입니▁after합력"를 입력합니다.npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install <package>전 세계적으로 필요하다면 그냥 추가하세요.-g.

저한테 효과가 있었어요, 당신에게 효과가 있기를 바랍니다 :)

프록시 설정에서 http/http 접두사를 사용하지 않고 제공하면 프록시 호스트와 포트가 올바른 값인 경우에도 npm이 실패합니다.프로토콜 접두사를 추가한 후에만 작동했습니다.

제 문제는 제 쪽에서 어리석은 실수로 귀결되었습니다.어느 날 빠르게 프록시를 Windows *.bat 파일(http_proxy, https_proxy 및 ftp_proxy)에 넣었기 때문에 url-encoded domain\user(%5C)의 특수 문자와 물음표 '?'(%3F)가 있는 암호를 잊어버렸습니다.즉, 인코딩된 명령어가 있으면 bat file 명령어의 '%'를 이스케이프하는 것을 잊지 마십시오.

나는 변했어요

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

로.

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

엣지 케이스일 수도 있지만 누군가에게 도움이 되기를 바랍니다.

환경 변수로 이동하고 제거하거나 빈 상태로 설정

HTTP_PROXY 및 HTTPS_PROXY

기업 환경에 대한 프록시 문제도 해결할 것입니다.

npm 설치에서 프록시를 사용하려면 npm 구성 항목을 모두 잊어버리고 프록시 환경 변수에 http 프록시를 설정하면 됩니다.npm i

export https_proxy=http://proxy.address.com:1090/
export http_proxy=http://proxy.address.com:1090/

이것은 항상 나에게 효과가 있습니다.

왜 그런지 모르겠지만 npm은 양말 프록시에서는 잘 작동하지 않는 것 같지만 http 프록시에서는 잘 작동합니다.

언급URL : https://stackoverflow.com/questions/7559648/is-there-a-way-to-make-npm-install-the-command-to-work-behind-proxy

반응형