eletron安装卡在 node install.js

hubery
  • 794

不知各位有没有感受,安装Electron的时候,往往卡在了node install.js这一步,我挂了VPN也下不下来。非常蛋疼。请问各位有没有什么好的解决方案。比如说更换源之类的,目前的这个源似乎应该是amazonaws的。

回复
阅读 34.3k
6 个回答
✓ 已被采纳

找到方法了,来自问自答一下。

$ node install.js

这句命令的install.jselectron这个包里的,里面的下载是依赖于electron-download这个模块。
在github上面,electron-download这个包里有如下标注:

You can set the ELECTRON_MIRROR or NPM_CONFIG_ELECTRON_MIRROR environment variable or mirror opt variable to use a custom base URL for grabbing Electron zips. The same pattern applies to ELECTRON_CUSTOM_DIR and ELECTRON_CUSTOM_FILENAME:

## Electron Mirror of China
ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/"
## or for a local mirror
ELECTRON_MIRROR="https://10.1.2.105/"
ELECTRON_CUSTOM_DIR="our/internal/filePath"

You can set ELECTRON_MIRROR in .npmrc as well, using the lowercase name:

electron_mirror=https://10.1.2.105/

所以解决的方法就是在~/.npmrc里做如下设置,

electron_mirror="https://npm.taobao.org/mirrors/electron/"

终极解决方案

  • npm 安装 node-sass 网速慢的 可以 运行 npm config set registry https://registry.npm.taobao.org

  • 然后 编辑 ~/.npmrc 加入下面内容

registry=https://registry.npm.taobao.org
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
phantomjs_cdnurl=http://npm.taobao.org/mirrors/phantomjs
ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/

ubuntu系统,可以使用这个方法:在命令行界面

# export ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/"
# npm install electron

这个方法是在这个命令行进程里面,设置变量,把这一次electron的源改成淘宝的源

可以直接改 /node_modules/electron/install.js:

// downloads if not cached
download({
  cache: process.env.electron_config_cache,
  version: version,
  platform: process.env.npm_config_platform,
  arch: process.env.npm_config_arch,
  strictSSL: process.env.npm_config_strict_ssl === 'true',
  force: process.env.force_no_cache === 'true',
  mirror: 'https://npm.taobao.org/mirrors/electron/', // 这里改镜像
  quiet: process.env.npm_config_loglevel === 'silent' || process.env.CI
}, extractFile)

然后执行这个install.js:node install.js

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏