프록시 뒤에서 npm install (명령)을 작동시키는 방법이 있습니까?
.npmrc
파일 에서 프록시 변수에 대해 읽었 지만 작동하지 않습니다. 모든 패키지를 수동으로 다운로드하지 않으려면 패키지가 필요합니다.
이 방법 으로이 문제를 해결했습니다.
이 명령을 실행합니다 :
npm config set strict-ssl false
그런 다음 https 대신 http로 실행되도록 npm을 설정하십시오.
npm config set registry "http://registry.npmjs.org/"
그런 다음이 구문을 사용하여 패키지를 설치합니다.
npm --proxy http://username:password@cacheaddress.com.br:80 install packagename
username:password
프록시가 인증을 요구하지 않으면 부분을 건너 뛰십시오.
편집 : 광산의 친구가 당신이 설정하여 프록시 뒤에 작업에 NPM을 얻을 수 있음을 지적 BOTH 명령을 한 후, HTTP_PROXY와 https_proxy를 환경 변수를 정상적으로 발행 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에 다음을 추가했습니다!
~/.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
그런 다음 붙여 넣은 코드에서 "username", "password"및 "proxy"필드를 편집하십시오.
새 터미널을여십시오
를 실행하여 설정을 확인
npm config list
하고cat ~/.npmrc
사용하여 모듈을 설치하십시오
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)의 마지막 버전에 대해서는 brunowego 설정을 따를 때를 제외하고 위의 모든 기능이 작동하지 않았습니다 .
따라서 다음을 사용하여 설정을 확인하십시오.
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
이것이 누군가에게 시간을 절약 할 수 있기를 바랍니다.
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
이것은 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
캐릭터에 사용됩니다 \
.
$ npm config set proxy http://login:pass@host:port
$ npm config set https-proxy http://login:pass@host:port
이것은 나를 위해 일했다.
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
npm set strict-ssl=false
vim ~/.npmrc
Linux 시스템에서 다음을 추가하십시오. registry
대부분의 경우 이로 인해 오류가 발생하므로 부분 을 추가하는 것을 잊지 마십시오 .
proxy=http://<proxy-url>:<port>
https-proxy=https://<proxy-url>:<port>
registry=http://registry.npmjs.org/
마지막으로 AD 인증으로 프록시 뒤에있는이 문제를 해결했습니다. 나는 실행해야했다.
npm config set proxy http://domain%5Cuser:password@proxy:port/
npm config set https-proxy http://domain%5Cuser:password@proxy:port/
backshlash 또는 #와 같은 특수 문자를 URL 인코딩하는 것이 매우 중요합니다. 제 경우에는 인코딩해야했습니다.
backshlash
% 5Cdomain\user will
로domain%5Cuser
#
기호%23%0A
와 같은 암호가되도록Password#2
할 것Password%23%0A2
또한 다음 설정을 추가했습니다.
npm config set strict-ssl false
npm config set registry http://registry.npmjs.org/
구성으로 프록시를 설정했지만 문제가 해결되지는 않았지만이 문제가 해결되었습니다.
npm --https-proxy http://XX.AA.AA.BB:8080 cordova-plugins 설치
npm --proxy http://XX.AA.AA.BB:8080 설치
나는이 모든 옵션을 시도했지만 프록시가 어떤 이유로 든 그것을 가지고 있지 않았습니다. 그런 다음 절망 / 절망에서 태어난 curl
Git Bash 쉘에서 무작위로 시도해 보았습니다 .
다음을 사용하여 모든 프록시 옵션 설정 해제
npm config rm proxy
npm config rm https-proxy
그리고 npm install
내 Git Bash 쉘에서 실행하면 완벽하게 작동했습니다. 프록시에 대해 올바르게 설정되어 있고 Windows cmd
프롬프트가 어떻게 설정되어 있는지 잘 모르겠지만 작동했습니다.
npm config set proxy <http://...>:<port_number>
npm config set registry http://registry.npmjs.org/
이것은 내 문제를 해결했습니다.
@Kayvar Answers의 첫 번째 네 줄은 다른 답변을 마침내 묶은 후에 문제를 해결하는 데 도움이됩니다.
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 구성 세트 프록시 http://proxy.company.com:8080
- npm 구성 세트 https-proxy http://proxy.company.com:8080
C : \ Users \ .npmrc에서 .npmrc를 찾으십시오.
그런 다음 (메모장)을 열고 쓰고 내부에 저장하십시오.
proxy=http://<username>:<pass>@<proxyhost>:<port>
추신 : "<"와 ">"를 제거하십시오 !!
비록 우리 회사의 프록시 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/
지시대로 그러나 같은 오류가 계속 발생합니다.
npm install electron --save-dev가 작동 한 것은 .npmrc 파일에서 제거 했을 때만였습니다.https-proxy https://proxyccc.xxx.ca:8080
cmd 또는 GIT Bash 또는 다른 프롬프트에서 아래 명령을 사용하십시오.
$ npm 구성 설정 프록시 " http://192.168.1.101:4128 "
$ npm 구성 세트 https-proxy " http://192.168.1.101:4128 "
여기서 192.168.1.101은 프록시 ip이고 4128은 포트입니다. 프록시 설정에 따라 변경하십시오. 그것은 나를 위해 작동합니다.
많은 응용 프로그램 (예 : npm)은 사용자 환경 변수의 프록시 설정을 사용할 수 있습니다.
HTTP_PROXY 및 HTTPS_PROXY 변수에 따라 환경에 추가 할 수 있으며 각 변수 마다 동일한 값을 갖습니다.
http : // user : password @ proxyAddress : proxyPort
예를 들어 Windows가있는 경우 다음과 같이 프록시를 추가 할 수 있습니다.
Windows 시스템에서
프록시 및 레지스트리 설정을 제거하고 (이미 설정된 경우) 명령 행에서 환경 변수를 설정하십시오.
SET HTTP_PROXY=http://username:password@domain:port
SET HTTPS_PROXY=http://username:password@domain:port
그런 다음 npm install을 실행하십시오. 이를 통해 .npmrc에 프록시를 설정하지는 않지만 해당 세션에서는 프록시가 작동합니다.
curl 및 인증서 문제 에 대한 curl 페이지에 대한 좋은 정보가 있습니다 . 나는 대부분의 답변을 그곳의 정보에 근거합니다.
strict-ssl false를 사용하는 것은 나쁜 습관이며 문제를 일으킬 수 있습니다. 우리가 대신 할 수있는 것은 "중간자"인증서에 의해 주입되는 인증서를 추가하는 것입니다.
Windows에서이를 해결하는 방법 :
- Mozilla의 CA 번들을 기반으로 curl 에서 CA 인증서를 다운로드하십시오 . curl의 "firefox-db2pem.sh"셸 스크립트를 사용하여 로컬 Firefox 데이터베이스를 변환 할 수도 있습니다.
- https를 사용하여 웹 페이지로 이동 (예 : Chrome 또는 Internet Explorer의 Stackoverflow)
- 자물쇠 아이콘을 클릭하고 Chrome에서 인증서보기 또는 "유효"를 클릭하십시오.
- 인증 경로로 이동하십시오. 최상위 인증서 또는 루트 인증서는 추출하려는 인증서입니다. 해당 인증서를 클릭 한 다음 "인증서보기"
- 두 번째 탭인 "세부 사항"을 클릭하십시오. "파일로 복사"를 클릭하십시오. DER 형식을 선택하고 파일을 저장 한 위치를 기록하십시오. rootcert.cer와 같은 적절한 파일 이름을 선택하십시오.
- Git을 설치했다면 openssl.exe를 갖게됩니다. 그렇지 않으면이 단계에서 git for windows를 설치하십시오. openssl 실행 파일은 대부분 C : \ Program Files \ git \ usr \ bin \ openssl.exe에 있습니다. openssl을 사용하여 파일을 NPM이 이해하는 데 필요한 PEM 형식으로 변환합니다.
- 다음 명령을 사용하여 5 단계에서 저장 한 파일을 변환하십시오.
openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text
여기서 rootcert 는 5 단계에서 저장 한 인증서의 파일 이름입니다. - 메모장이 아니라 줄 끝을 이해하기에 충분히 스마트 한 텍스트 편집기에서 outcert.pem을 엽니 다. 모든 텍스트를 선택하고 클립 보드에 복사하십시오.
- 이제 1 단계에서 만든 CA Cert 번들의 끝에 해당 내용을 붙여 넣습니다. 따라서 고급 텍스트 편집기 에서 cacert.pem 을 엽니 다 . 파일 끝으로 이동하여 이전 단계에서 파일 끝으로 내용을 붙여 넣습니다. (방금 붙여 넣은 것 아래 빈 줄을 유지하십시오)
- 저장된 cabundle.pem을 적절한 위치에 복사하십시오. 예를 들어 % userprofile % 또는 ~. 파일 위치를 기록해 두십시오.
- 이제 npm / yarn에 새 번들을 사용하도록 지시합니다. 명령 행
npm config set cafile **C:\Users\username\cacert.pem
에서 C : \ Users \ username \ cacert.pem 이 10 단계의 경로임을 기록하십시오. - 선택적으로 : strict-ssl을 다시 켜십시오.
npm config set strict-ssl true
휴! 우리는 그것을 만들었다! 이제 npm은 연결 방법을 이해할 수 있습니다. 보너스는 curl에 동일한 cabundle.pem을 사용하도록 지시 할 수 있으며 HTTP도 이해할 수 있다는 것입니다.
필자의 경우 구성 파일 (C : \ Users \ [USERNAME] \. npmrc에 있음) 프록시 주소에서 "http : //"를 설정하는 것을 잊었습니다. 그래서 대신
proxy=http://[IPADDRESS]:[PORTNUMBER]
https-proxy=http://[IPADDRESS]:[PORTNUMBER]
나는했다
proxy=[IPADDRESS]:[PORTNUMBER]
https-proxy=[IPADDRESS]:[PORTNUMBER]
물론 작동하지 않았지만 오류 메시지는별로 도움이되지 않았습니다 ...
이 질문에 대한 많은 답변이 있었지만 그 중 어느 것도 나를 위해 일하지 않았습니다. 그들 모두는 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).
- 다음 파일을 편집하십시오
C:\Users\<WIN_USERNAME>\.npmrc
다음 주소에서 인증서를 파일 시스템으로 내보내십시오. https://registry.npmjs.org
내 보낸 인증서 위치로 이동하여 다음 명령을 실행하십시오.
npm config set cafile npm_certificate.cer
파일에 다음 변경 사항을 추가하십시오.
registry=https://registry.npmjs.org/ strict-ssl=false https-proxy=http://[proxy_user]:[proxy_password]@[proxy_ip]:[proxy_port]/ cafile=npm_certificate.cer
이제 갈 준비가되었습니다!
내 문제는 내 바보 같은 실수로 귀착했다. 언젠가 프록시를 Windows * .bat 파일 (http_proxy, https_proxy 및 ftp_proxy)에 빠뜨 렸으므로 URL 인코딩 된 도메인 \ 사용자 (% 5C)의 특수 문자와 물음표가있는 비밀번호를 피하는 것을 잊었습니다. '?' (% 3F). 즉, 일단 인코딩 된 명령이 있으면 bat 파일 명령에서 '%'를 이스케이프하는 것을 잊지 마십시오.
나는 바꿨다
set http_proxy=http://domain%5Cuser:password%3F@myproxy:8080
에
set http_proxy=http://domain%%5Cuser:password%%3F@myproxy:8080
어쩌면 가장자리 케이스 일 수도 있지만 누군가에게 도움이되기를 바랍니다.
프록시 설정에 http / http 접두사를 지정하지 않으면 프록시 호스트와 포트가 올바른 값이더라도 npm이 실패했습니다. 프로토콜 접두사를 추가 한 후에 만 작동했습니다.
그냥 새 터미널을 열고 입력 npm config edit
하고 npm config -g edit
. 기본값으로 재설정하십시오. 터미널을 닫은 후 새 터미널을 열고 npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install <package>
전역 적으로 추가 해야하는 경우 입력 하십시오 -g
.
그것은 나를 위해 일했습니다, 그것이 당신을 위해 일하기를 바랍니다 :)
'IT story' 카테고리의 다른 글
인터페이스 — 요점이 무엇입니까? (0) | 2020.04.07 |
---|---|
정적 팩토리 메소드 란 무엇입니까? (0) | 2020.04.07 |
동일한 요소가 여러 번 반복되는 배열 만들기 (0) | 2020.04.07 |
Visual Studio 64 비트? (0) | 2020.04.07 |
pip, virtualenv를 설치하고 Python에 배포하는 올바른 방법은 무엇입니까? (0) | 2020.04.07 |