前言
采用了Electron+React+七牛云搭建的在线Markdown云文档。
注意
- 运行起来后,需要在菜单栏中打开设置中心,配置
access_key
,secret_key
,bucket
,才能同步到你自己的七牛云 - 当需要
release
时,需要先确定package.json
中的publish
平台,并在自己的package.json
中设置发布平台的GH_TOKEN
以下是从0到1的搭建过程,当然,其中省略了中间的业务
搭建electron+React开发环境
- 拉取react脚手架代码:
npx create-react-app my-app
- 安装electron:
cnpm install electron --save-dev
- 项目根目录下新建
main.js
,并且在package.json
中增加"main"入口:
- 安装判断是否是本地开发的小工具:
cnpm install electron-is-dev
- 安装同时运行两个命令的包:
npm install concurrently --save
- 修改
package.json
为如下,但是因为这是同时运行的,但是正常来说是前一个命令运行起来,再运行后一个命令
- 因此需要再安装一个小工具:
cnpm install wait-on --save-dev
。并修改package.json
如下:
- 但是这样同时还会打开浏览器,为了不打开浏览器,可以设置BROWSER为none,但是有跨平台的问题,因此可以再安装一个跨平台的工具,用于设置环境变量:
cnpm install cross-env --save-dev
,并修改package.json
修改为如下:
打包过程
- 安装
electron-builder
: npm install electron-builder --save-dev - 项目根目录运行
npm run build
- 修改非开发环境下electron运行的本地地址:
const urlLocation = isDev?'http://localhost:3000':
file://${path.join(__dirname, './build/index.html')} - 在
package.json
中添加基本配置,package.json
第一层添加如下代码:
- 在
script
中添加:
- 运行
npm run pack
- 报错
- 报错
- 报错
- 报错
配置安装包
- 在package.json的build中配置打包过程中的静态图片,告诉electron-builder安装包所需静态文件的位置:
- 在package.json的build中添加win,mac,linux的配置
压缩优化体积
- 在安装包中有一个
app.asar
是体积过大的主要罪魁祸首,解压后,发现其实就是package.json
中build
下files
中的文件内容。 - 优化视图层(react)。思路:在打安装包之前,已经通过
npm run build
将react相关的代码,也就是视图层的代码,进行了打包到build
文件夹下,因此其实只需要将main.js中用到的包放在dependencies
中就行了,剩余的包,移动到devDependencies
中。因为electron-builder
不会把devDependencies
中的包打包进应用程序 - 优化
electron
层。思路:通过新建webpack.config.js
将main.js
进行打包,并配置,将main.js
打包进入build
文件夹
如何release
- 在
package.json
中配置release
的平台为github
,即在build
中配置如何代码
- 在
GitHub
中生成该项目所需要的access_key
,并替换如下代码you_access_key
的对应位置 - 在
package.json
中配置release
命令并设置环境变量,如下:
npm run release
即可。
版本自动更新
- 安装
npm install electron-updater --save-dev
并在main.js
中引入:
需要教程及相互交流的私聊 ❤️爱心三连击
1.看到这里了就点个在看支持下吧,你的「在看」是我创作的动力。
2.关注公众号前端梦想家,「一起学前端」!
3.添加微信【qdw1370336125】,拉你进技术交流群一起学习。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!