답변:
이 방법 으로이 문제를 해결했습니다.
이 명령을 실행합니다 :
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가 언급했듯이, @이 포함 된 경우 전체 비밀번호를 따옴표로 묶으면 "@"가 포함 된 비밀번호는 올바르게 구문 분석되지 않습니다.
my@password
이면 .npmrc 파일 my%40password
에 암호 부분 이 있어야 합니다. 따옴표로 묶는 것은 경우에 따라 작동하지만 인코딩하는 것은 간단합니다.
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
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
NPM 설정 한 후 설치 NPM 패키지 사용 npm --proxy http://myusername:mypassword@proxy.us.somecompany:8080 --without-ssl --insecure -g install {packagename}
. 감사합니다
.npmrc
파일 대신 명령 행 옵션을 사용해 보셨습니까 ?
나는 같은 것이 npm --proxy http://proxy-server:8080/ install {package-name}
나를 위해 일 했다고 생각한다 .
또한 다음을 보았습니다.
npm config set proxy http://proxy-server:8080/
좋은 조언이 많이 있지만 내 환경 (Windows 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
이것이 누군가에게 시간을 절약 할 수 있기를 바랍니다.
이것은 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
캐릭터에 사용됩니다 \
.
encodeURIComponent("YourP@ssword")
하여 암호화 된 버전의 비밀번호를 얻을 수 있습니다.
이것은 나를 위해 일했다.
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/
https-proxy=https://..
하면https-proxy=http://..
마지막으로 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
% 5C domain\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 설치
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은 그렇지 않지만 파이썬 등은 모두 작동합니다.
나는 시도했다
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
https-proxy
은 아마 아닙니다 https:
. 적어도 각각에 대해 동일한 포트를 갖는 것은 올바르지 않을 수도 있지만 둘 다 동일한 값을 가지고 있다고 생각합니다.
Windows 시스템에서
프록시 및 레지스트리 설정을 제거하고 (이미 설정된 경우) 명령 행에서 환경 변수를 설정하십시오.
SET HTTP_PROXY=http://username:password@domain:port
SET HTTPS_PROXY=http://username:password@domain:port
그런 다음 npm install을 실행하십시오. 이를 통해 .npmrc에 프록시를 설정하지 않지만 해당 세션에서는 프록시가 작동합니다.
SET HTTP_PROXY http://username:password@domain:port
있었지만 SET HTTP_PROXY=http://username:password@domain:port
모든 것을 작동 시키는 것처럼 보였다
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가있는 경우 다음과 같이 프록시를 추가 할 수 있습니다.
이 질문에 대한 많은 답변이 있었지만 그 중 어느 것도 나를 위해 일하지 않았습니다. 그들 모두는 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
나는 이것의 논리를 모른다. 그러나 그것은 효과가 있었다. 위의 답변 중 어느 것도 효과가 없다면이 방법을 시도해 볼 수 있습니다. 이것이 유용하기를 바랍니다.
curl 및 인증서 문제 에 대한 curl 페이지에 대한 좋은 정보가 있습니다 . 나는 대부분의 답변을 그곳의 정보를 기반으로합니다.
strict-ssl false를 사용하는 것은 나쁜 습관이며 문제를 일으킬 수 있습니다. 우리가 대신 할 수있는 것은 "중간자"인증서에 의해 주입되는 인증서를 추가하는 것입니다.
Windows에서이를 해결하는 방법 :
openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text
npm config set cafile **C:\Users\username\cacert.pem
npm config set strict-ssl true
휴! 우리는 그것을 만들었다! 이제 npm은 연결 방법을 이해할 수 있습니다. 보너스는 curl에 동일한 cabundle.pem을 사용하도록 지시 할 수 있으며 HTTP도 이해할 수 있다는 것입니다.
다음은 내가 수행 한 단계입니다 (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이 실패했습니다. 프로토콜 접두사를 추가 한 후에 만 작동했습니다.