构建Electron的常见问题(Mac)
背景
起因是产品的需求,需要更换Electron为底层平台,但因为会有不少定制化的功能要实现,必须自己实现此类内容,所以也就导致必须自己编译Electron的源代码。
整个构建过程,看Electron的构建文档就行了:https://github.com/electron/i18n/blob/master/content/zh-CN/docs/development/build-instructions-gn.md
不过在构建Electron的过程中,出现了很多问题。
一、拉取不了chromium代码。
这个问题大家都懂的,需要翻墙才拉得了代码。这里需要注意了,整个构建代码大约有20几G,得留意工具的套餐有没有这么多流量。
另外,一般来讲我们是用终端命令行拉代码,然而终端的请求是不会经过翻墙工具的,所以需要设代理。
例如我的小飞机是这么设的:
export http_proxy=http://127.0.0.1:1087;
export https_proxy=http://127.0.0.1:1087;
二、拉了好久都没拉完。
一开始我是在宿舍拉代码的,但用了一天一夜,都还没有拉完,而终端的日志也让人奔溃。
[7:52:44] Still working on:
[7:52:44] src
后来感觉是因为宿舍的网速太慢,于是到公司去拉,约4个半小时就拉好!
[4:20:04] Still working on:
[4:20:04] src/v8
Syncing projects: 100% (95/95), done.
所以,网速很重要!!!
三、拉不下来,报错了。
在公司拉代码时,第一次遇到报错,拉取失败。
[1:30:24] error: RPC failed; curl 18 transfer closed with outstanding read data remaining
[1:30:24] fatal: The remote end hung up unexpectedly
[1:30:24] fatal: early EOF
[1:30:24] fatal: index-pack failed
查询资料说是git的 http.postBuffer 这个参数太小,会导致大文件拉不下来。
于是设置了:
git config --global http.postBuffer 999M
这么设置后,就正常拉完了!!!也就是第二次成功了。
四、还是拉不下来。
磁盘空间不足,也会导致代码拉取失败的!
整体代码拉下来,大概是30几G,另外编译代码生成的中间代码也会有30几G,所以要保证当前磁盘空间至少有70多G(一般128G的Mac就不用想编译这东西了)。
五、编译出错。
__main__.SdkError: 'Install Xcode, launch it, accept the license agreement, and run `sudo xcode-select -s /path/to/Xcode.app` to continue.'
这个错误,其实它说得很清楚,按提示处理就行。
sudo xcode-select -s /Applications/Xcode.app
总结
在整个构建过程中,问题主要是拉取代码和编译两方面。拉取代码保证网速、稍大的磁盘容量和Git http.postBuffer参数基本就没什么问题,而编译过程中的问题,按错误日志处理也就可以解决!

构建Electron的常见问题(Mac)的更多相关文章
- 如何开发Vite3插件构建Electron开发环境
新用户购买<Electron + Vue 3 桌面应用开发>,加小册专属微信群,参与群抽奖,送<深入浅出Electron>.<Electron实战>作者签名版. 1 ...
- Electron 项目在 Mac 下复制和粘贴快捷键失效的解决办法
公司的一个项目需要开发跨平台,由于整个项目完全由我一个人开发,本人也是初次接触 Electron,开发过程中遇到了不少坑,同样的代码 Windows 下复制和粘贴没有问题,Mac 下复制和粘贴失效,在 ...
- 如何使用JavaScript UI控件(WijmoJS)构建Electron应用程序
概述 What is Electron? Electron是一个使用JavaScript.HTML和CSS构建跨平台桌面应用程序的框架. 您可以将Electron与纯JavaScript或您选择的Ja ...
- electron Windows和mac 的菜单栏隐藏
1.Windows隐藏方法 const {electron,Menu,debug} = require('electron'); Menu.setApplicationMenu(null) 2.mac ...
- electron --- 构建桌面应用
最近无意间看到了electron和nw的相关信息,感到很惊讶,因为学习前端也有一段时间了,竟然发现js还有这么强大的功能,因为js不仅可以写网页.写webapp.写hybrid,以及前不久出现的小程序 ...
- 从零开始搭建Electron+Vue+Webpack项目框架,一套代码,同时构建客户端、web端(一)
摘要:随着前端技术的飞速发展,越来越多的技术领域开始被前端工程师踏足.从NodeJs问世至今,各种前端工具脚手架.服务端框架层出不穷,“全栈工程师”对于前端开发者来说,再也不只是说说而已.在NodeJ ...
- 基于electron+vue+element构建项目模板之【打包篇】
1.概述 开发平台OS:windows 开发平台IDE:vs code 本项目使用了一款Vue-CLI插件(vue-cli-plugin-electron-builder) 来构建 electron ...
- 使用 AngularJS 和 Electron 构建桌面应用
GitHub 的 Electron 框架(以前叫做 Atom Shell)允许你使用 HTML, CSS 和 JavaScript 编写跨平台的桌面应用.它是io.js 运行时的衍生,专注于桌面应用而 ...
- AngularJS 和 Electron 构建桌面应用
译]使用 AngularJS 和 Electron 构建桌面应用 原文: Creating Desktop Applications With AngularJS and GitHub Electro ...
随机推荐
- springboot整合activiti
1.第一步添加bpmn文件得插件,不然没法查看和编辑bpmn文件,添加插件的方法各自百度即可,很简单 2.安装好bpmn插件后开始新建bpmn文件,也就是画流程图 一般是在代码中进行指定流程审批人的, ...
- Spring MVC上传文件原理和resolveLazily说明
问题:使用Spring MVC上传大文件,发现从页面提交,到进入后台controller,时间很长.怀疑是文件上传完成后,才进入.由于在HTTP首部自定义了“Token”字段用于权限校验,Token的 ...
- IDEA插件开发(一)一个简单的表单demo
- C#开发安卓自学笔记1
今天开始研究了下C#开发安卓,刚开始什么都不懂,学过安卓的同学们也是用Java开发的,虽然两者开发差别不大,但是还是有差别的 // Set our view from the "main&q ...
- PDF怎么删除页面?教你两个超级好用的方法
在日常办公中,由于工作需要我们有时候会对PDF文件中的内容进行二次编辑,可能需要删除PDF文件中的一些页面.那么PDF怎么删除页面呢?小伙伴们还在为这个问题苦恼吗?那么今天小编就来教大家两个超级好用的 ...
- java中List、Map、Set、Stack、Queue、Collections等的使用
java中List.Map.Set.Stack.Queue.Collections等的使用 List 创建方法: List<String> list=new ArrayList<&g ...
- Spring面试题总结及答案
Spring面试总结 Spring是什么? Spring框架是一个java平台,提供全面基础设施支持开发java应用程序. Spring的主要模块有哪些? Spring Code:基础模块,主要提供I ...
- centos与内核版本对应关系
centos是基于redhat的二次开发,redhat会封装不同版本的内核,有时候,我们需要指定内核版本的centos,下面两个网站或许对你有帮助: https://access.redhat.com ...
- 小白学 Python 爬虫(23):解析库 pyquery 入门
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 十分钟学会Markdown基本语法
文章目录 Markdown 语法 一.标题 这是一级标题 这是二级标题 这是三级标题 这是四级标题 这是五级标题 这是六级标题 二.字体 三.引用 四.分割线 五.图片 六.超链接 七.列表 八.表格 ...