【问题标题】:How can I solve the connection problem during npm install behind a proxy?如何解决代理后面的 npm install 期间的连接问题?
【发布时间】:2020-05-20 02:41:56
【问题描述】:

我按照说明进行操作: https://www.electronjs.org/docs/tutorial/first-app

我输入了mkdircdnpm init。他们都运作良好。出现了一个名为package.json 的文件。

然后我输入了npm install --save-dev electron。发生了一些错误。

lala@ubu:~/projects/electron/my-app 17:20:34
$ npm install --save-dev electron

> core-js@3.6.4 postinstall /home/lala/projects/electron/my-app/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"

Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!

The project needs your help! Please consider supporting of core-js on Open Collective or Patreon: 
> https://opencollective.com/core-js 
> https://www.patreon.com/zloirock 

Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)


> electron@8.0.0 postinstall /home/lala/projects/electron/my-app/node_modules/electron
> node install.js

(node:5950) UnhandledPromiseRejectionWarning: RequestError: connect ETIMEDOUT 13.250.177.223:443
    at ClientRequest.<anonymous> (/home/lala/projects/electron/my-app/node_modules/got/source/request-as-event-emitter.js:178:14)
    at Object.onceWrapper (events.js:313:26)
    at ClientRequest.emit (events.js:228:7)
    at ClientRequest.origin.emit (/home/lala/projects/electron/my-app/node_modules/@szmarczak/http-timer/source/index.js:37:11)
    at TLSSocket.socketErrorListener (_http_client.js:406:9)
    at TLSSocket.emit (events.js:223:5)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
    at processTicksAndRejections (internal/process/task_queues.js:81:21)
(node:5950) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:5950) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN my-app@1.0.0 No description
npm WARN my-app@1.0.0 No repository field.

+ electron@8.0.0
added 85 packages from 91 contributors and audited 102 packages in 87.419s

2 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

执行上述指令后,出现一个文件夹node_modules和一个文件package-lock.json

看来我已经成功安装了依赖项。但是为什么会出现一个连接错误呢?

我无法直接访问github.com(13.250.177.223),但我的代理可以工作。

我已经配置如下代理,但是连接错误仍然存​​在。

我的~/.bashrc

export HTTP_PROXY=http://127.0.0.1:8123/
export HTTPS_PROXY=http://127.0.0.1:8123/
export http_proxy=http://127.0.0.1:8123/
export https_proxy=http://127.0.0.1:8123/
$ cat ~/.npmrc 
proxy=http://127.0.0.1:8123/
http-proxy=http://127.0.0.1:8123/
https-proxy=http://127.0.0.1:8123/
noproxy=localhost,127.0.0.1,192.168.,10.
strict-ssl=false

节点 v12.14.1 npm v6.13.7

如何减少错误?

感谢您的帮助!

【问题讨论】:

标签: javascript node.js npm proxy electron


【解决方案1】:

试试这个从代理后面安装电子节点模块的解决方案。

npx cross-env ELECTRON_GET_USE_PROXY=true GLOBAL_AGENT_HTTPS_PROXY=http://username:password@host:8080 npm install -D electron@latest
  • username:password 是您的网络用户名和密码(如果需要)。
  • 这里的host:8080 是您的代理服务器主机名和端口号。
  • cross-env 是另一个支持命令行变量的节点模块(可选)。

【讨论】:

  • 我们可以查看这个 gh 评论以获取更多信息,关于在代理后面安装电子。 github.com/electron/electron/issues/…
  • npm ERR! request to https://registry.npmjs.org/cross-env failed, reason: connect ENETUNREACH 104.16.16.35:443 - 这就是我得到的
猜你喜欢
  • 1970-01-01
  • 2022-01-14
  • 2019-07-29
  • 1970-01-01
  • 1970-01-01
  • 2021-08-28
  • 2019-12-03
  • 1970-01-01
  • 2021-04-11
相关资源
最近更新 更多