[node.js] 프록시 뒤에서 npm install (명령)을 작동시키는 방법이 있습니까?

.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프록시가 인증을 요구하지 않으면 부분을 건너 뛰십시오.

편집 : 광산의 친구가 당신이 설정하여 프록시 뒤에 작업에 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에 다음을 추가했습니다!

  1. ~/.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. 그런 다음 붙여 넣은 코드에서 “username”, “password”및 “proxy”필드를 편집하십시오.

  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 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캐릭터에 사용됩니다 \.


답변

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