Ren*_*ama 326
我这样解决了这个问题:
我运行这个命令:
npm config set strict-ssl false
Run Code Online (Sandbox Code Playgroud)然后将npm设置为使用http而不是https运行:
npm config set registry "http://registry.npmjs.org/"
Run Code Online (Sandbox Code Playgroud)然后我使用以下语法安装包:
npm --proxy http://用户名:password@cacheaddress.com.br:80\install packagename
username:password
如果代理不要求您进行身份验证,请跳过该部分
编辑:我的一个朋友刚刚指出你可以通过设置BOTH HTTP_PROXY和HTTPS_PROXY环境变量让NPM在代理后面工作,然后正常发出命令 npm install express(例如)
EDIT2:正如@BStruthers评论的那样,请记住,如果包含@将整个密码放在引号中,那么包含"@"的密码将无法正确解析
j.i*_*s.h 298
设置npm
代理
用于HTTP
:
npm config set proxy http://proxy_host:port
Run Code Online (Sandbox Code Playgroud)
用于HTTPS
:
使用https代理地址(如果有)
npm config set https-proxy https://proxy.company.com:8080
Run Code Online (Sandbox Code Playgroud)
否则重用http代理地址
npm config set https-proxy http://proxy.company.com:8080
Run Code Online (Sandbox Code Playgroud)
注意:https-proxy没有https
协议,但是http
.
Kat*_*tie 101
如有疑问,请像我一样尝试所有这些命令:
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
Run Code Online (Sandbox Code Playgroud)
=======
将您的设置放入~/.bashrc
或者~/.bash_profile
每次打开新的终端窗口时都不必担心设置!
如果你的公司和我的公司一样,我必须经常更改我的密码.所以我将以下内容添加到〜/ .bashrc或〜/ .bash_profile中,以便每当我打开终端时,我都知道我的npm是最新的!
只需将以下代码粘贴到~/.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
Run Code Online (Sandbox Code Playgroud)然后编辑粘贴代码中的"用户名","密码"和"代理"字段.
打开一个新终端
通过运行npm config list
和检查您的设置cat ~/.npmrc
尝试使用安装模块
npm install __
, 要么 npm --without-ssl --insecure install __
, 要么 npm --without-ssl --insecure --proxy http://username:password@proxy:8080 install __
.-g
Ben*_*eys 32
您是否尝试过命令行选项而不是.npmrc
文件?
我认为这样的事情npm --proxy http://proxy-server:8080/ install {package-name}
对我有用.
我也见过以下内容:
npm config set proxy http://proxy-server:8080/
Car*_*cia 20
虽然已经有很多好的建议,但对于我的环境(Windows 7,使用PowerShell)和node.js(v8.1.2)的最新版本,除了我遵循brunowego设置之外,以上所有都没有用.
因此,请检查您的设置:
npm config list
Run Code Online (Sandbox Code Playgroud)
代理背后的设置:
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
Run Code Online (Sandbox Code Playgroud)
希望这会为某人节省时间
And*_*rei 15
要设置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
max*_*mus 15
这适用于Windows:
npm config set proxy http://domain%5Cuser:pass@host:port
Run Code Online (Sandbox Code Playgroud)
如果您不在任何域中,请使用:
npm config set proxy http://user:pass@host:port
Run Code Online (Sandbox Code Playgroud)
如果您的密码包含特殊字符,例如"
,@
,:
等等,通过他们的URL编码值替换它们.例如"
- > %22
,@
- > %40
,:
- > %3A
.%5C
用于角色\
.
小智 8
$ npm config set proxy http://login:pass@host:port
$ npm config set https-proxy http://login:pass@host:port
Run Code Online (Sandbox Code Playgroud)
这对我有用 -
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
npm set strict-ssl=false
Run Code Online (Sandbox Code Playgroud)
vim ~/.npmrc
在你的Linux机器上添加以下内容.registry
在许多情况下,不要忘记添加部件,因为这会导致故障.
proxy=http://<proxy-url>:<port>
https-proxy=https://<proxy-url>:<port>
registry=http://registry.npmjs.org/
Run Code Online (Sandbox Code Playgroud)
最后,我设法解决了使用AD身份验证作为代理的问题。我必须执行:
npm config set proxy http://domain%5Cuser:password@proxy:port/
npm config set https-proxy http://domain%5Cuser:password@proxy:port/
Run Code Online (Sandbox Code Playgroud)
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/
Run Code Online (Sandbox Code Playgroud)
虽然我用config设置代理,但问题没有解决,但是这个之后对我有用:
npm --https-proxy http://XX.AA.AA.BB:8080安装cordova-plugins
npm --proxy http://XX.AA.AA.BB:8080安装
我尝试了所有这些选项,但由于某种原因,我的代理没有任何选项.然后,出于绝望/绝望,我随机尝试curl
了我的Git Bash shell,它起作用了.
使用取消设置所有代理选项
npm config rm proxy
npm config rm https-proxy
Run Code Online (Sandbox Code Playgroud)
然后npm install
在我的Git Bash shell中运行完美.我不知道它是如何正确设置代理和Windows cmd
提示不是,但它的工作原理.
npm config set proxy <http://...>:<port_number>
npm config set registry http://registry.npmjs.org/
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题.
最后绑好不同的答案后,@ 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
Run Code Online (Sandbox Code Playgroud)
小智 5
这对我有用.设置http和https代理.
在Windows系统上
尝试删除代理和注册表设置(如果已设置),然后通过以下方式在命令行上设置环境变量
SET HTTP_PROXY=http://username:password@domain:port
SET HTTPS_PROXY=http://username:password@domain:port
Run Code Online (Sandbox Code Playgroud)
然后尝试运行npm install。这样,您将不会在.npmrc中设置代理,但在该会话中它将起作用。
尝试在C:\ Users\.npmrc中找到.npmrc
然后打开(记事本),写入并保存在里面:
proxy=http://<username>:<pass>@<proxyhost>:<port>
Run Code Online (Sandbox Code Playgroud)
PS:请删除"<"和">"!
小智 5
对我来说,即使python等都可以使用,但我们的公司代理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/
按照指示进行操作,但始终出现相同的错误。
只有当我
从.npmrc文件中删除
时https-proxy https://proxyccc.xxx.ca:8080
,npm install electronic --save-dev才起作用
就我而言,我忘记在我的配置文件(可以在 C:\Users\[USERNAME]\.npmrc 中找到)代理地址中设置“http://”。所以,而不是拥有
proxy=http://[IPADDRESS]:[PORTNUMBER]
https-proxy=http://[IPADDRESS]:[PORTNUMBER]
Run Code Online (Sandbox Code Playgroud)
我有
proxy=[IPADDRESS]:[PORTNUMBER]
https-proxy=[IPADDRESS]:[PORTNUMBER]
Run Code Online (Sandbox Code Playgroud)
这当然不起作用,但错误消息也没有多大帮助......
小智 5
curl 关于SSL 和证书问题的页面上有很好的信息。我的大部分答案都基于那里的信息。
使用 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,它也可以理解 HTTPs。
归档时间: |
|
查看次数: |
360390 次 |
最近记录: |