为什么 npm 在我的 Arch 上难以连接到互联网?

为什么 npm 在我的 Arch 上难以连接到互联网?

所以在下载时原子文本编辑器通过命令yaourt -S atom-editor,但我收到以下错误:

Installing build modules...
npm ERR! Linux 4.5.4-1-ARCH
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "--userconfig=/tmp/yaourt-tmp-shazam/aur-atom-editor-arch/src/atom-1.8.0/build/.npmrc" "install"
npm ERR! node v6.2.0
npm ERR! npm  v3.9.3
npm ERR! code ECONNREFUSED
npm ERR! errno ECONNREFUSED
npm ERR! syscall connect

npm ERR! Error: connect ECONNREFUSED 199.27.76.162:443
npm ERR!     at Object.exports._errnoException (util.js:953:11)
npm ERR!     at exports._exceptionWithHostPort (util.js:976:20)
npm ERR!     at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14)
npm ERR!  { Error: connect ECONNREFUSED 199.27.76.162:443
npm ERR!     at Object.exports._errnoException (util.js:953:11)
npm ERR!     at exports._exceptionWithHostPort (util.js:976:20)
npm ERR!     at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14)
npm ERR!   code: 'ECONNREFUSED',
npm ERR!   errno: 'ECONNREFUSED',
npm ERR!   syscall: 'connect',
npm ERR!   address: '199.27.76.162',
npm ERR!   port: 443,
npm ERR!   parent: 'atom-build' }
npm ERR! 
npm ERR! If you are behind a proxy, please make sure that the
npm ERR! 'proxy' config is set properly.  See: 'npm help config'

npm ERR! Please include the following file with any support request:
npm ERR!     /tmp/yaourt-tmp-shazam/aur-atom-editor-arch/src/atom-1.8.0/build/npm-debug.log
Node: v6.2.0
npm: v3.9.3

我已经设置了环境变量export all_proxy=proxy.iisc.ernet.in:3128,这是我的公司代理。我还设置了 npm 代理npm set all_proxy proxy.iisc.ernet.in:3128。我在 npm 上设置了错误的变量吗?

笔记: 这是一个分支问题。

答案1

根据npm 配置帮助,它只会从环境中获取代理设置

如果设置了 HTTPS_PROXY 或 https_proxy 或 HTTP_PROXY 或 http_proxy 环境变量

(从 部分来看https_proxy,该proxy部分只提到了HTTP_PROXYhttp_proxy)。

该帮助也没有all_proxy在任何地方列为配置键,只是https_proxyproxy,这解释了为什么您的all_proxy设置没有任何效果。

答案2

CLTM如果您的公司代理使用 Microsoft 的 NTLM,则可能需要。

cntlm为上游代理(即您的公司代理)配置代理服务器后,只需配置npm即可使用它:

npm config set proxy http://127.0.0.1:3128
npm config set https-proxy http://127.0.0.1:3128

您必须同时拥有httphttps。如果在配置文件中配置代理而不是环境变量,则大多数包管理器的工作效果最好,环境变量更适合从命令行运行脚本。

但是,您的错误代码显示“连接被拒绝”,因此这可能是出站防火墙、SELinux 阻止或代理主机端口错误。尝试从同一用户进行远程登录,看看它是否有效以及端口在代理上是否打开。

答案3

npm config set proxy null
npm config set https-proxy null
npm config set registry http://registry.npmjs.org/

相关内容