阅读.npmrc文件中的代理变量,但它不起作用。尽量避免手动下载所有需要的包并安装。


当前回答

在我的情况下,我忘记在配置文件中设置“http://”(可以在C: \Users \ [USERNAME] \ .npmrc中找到)代理地址。所以我们不需要

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

我有

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

这当然没有工作,但错误消息也没有多大帮助…

其他回答

打开新终端,输入npm config edit和npm config -g edit。重置为默认值。关闭终端后,打开新终端,输入npm——without-ssl——insecure——proxy http://username:password@proxy:8080 install <package>如果你需要全局添加-g。

这对我很有用,希望对你也有用:)

你尝试过命令行选项而不是.npmrc文件吗?

我认为类似于npm——proxy http://proxy-server:8080/ install {package-name}的东西对我有用。

我还看到了以下内容: NPM配置设置代理http://proxy-server:8080/

在最后捆绑了不同的答案后,@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

设置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

注意:http -proxy没有使用https作为协议,而是使用http。

在curl的页面上有关于SSL和证书问题的很好的信息。 我的大部分答案都是基于那里的信息。

使用strict-ssl false是不好的做法,可能会产生问题。我们可以做的是添加由“中间人”证书注入的证书。

如何在Windows上解决这个问题:

Download the CA Certificates from curl based on Mozilla's CA bundle. You can also use curl's "firefox-db2pem.sh" shellscript to convert your local Firefox database. Go to a webpage using https, for example Stackoverflow in Chrome or Internet Explorer Click the lock icon, click View certificates or "Valid" in Chrome Navigate to the Certification path. The top certificate, or the root certificate is the one we want to extract. Click that certificate and then "view certificate" Click the second tab, "Details". Click "Copy to file". Pick the DER format and make note of where you save the file. Pick a suitable filename, like rootcert.cer If you have Git installed you will have openssl.exe. Otherwise, install git for windows at this stage. Most likely the openssl executable will be at C:\Program Files\git\usr\bin\openssl.exe. We will use openssl to convert the file to the PEM format we need for NPM to understand it. Convert the file you saved in step 5 by using this command: openssl x509 -inform DES -in **rootcert**.cer -out outcert.pem -text where rootcert is the filename of the certificate you saved in step 5. Open the outcert.pem in a text-editor smart enough to understand line-endings, so not notepad. Find -----BEGIN CERTIFICATE----- lots of characters -----END CERTIFICATE----- and copy all text between them and also including the BEGIN / END lines Now we will paste that content to the end of the CA Cert bundle made in step 1. So open the cacert.pem in your advanced texteditor. Go to the end of the file and paste the content from previous step to the end of file. (Preserve the empty line below what you just pasted) Copy the saved cabundle.pem to a suitable place. Eg your %userprofile% or ~. Make note of the location of the file. Now we will tell npm/yarn to use the new bundle. In a commandline, write npm config set cafile **C:\Users\username\cacert.pem** where C:\Users\username\cacert.pem is the path from step 10. Optionally: turn on strict-ssl again, npm config set strict-ssl true

唷!我们成功了!现在npm可以理解如何连接了。额外的好处是,您可以告诉curl使用相同的cabundle。pem,它也能理解HTTPs。