前端初学electron

1 electron官网

electron中文网 https://electronjs.org/docs

2 基于vue

1.electron-vue

官网 https://simulatedgreg.gitbooks.io/electron-vue/content/cn/
不足之处:根据官网运行项目后发现如下图

1.不足electron 版本太低
在这里插入图片描述
2.官方给的升级相关不确定 不论是vue即将突出的3.0 还是ts等新特性
在这里插入图片描述
3.官方代码submit 截日2018年10月23日 可见目前无人维护
在这里插入图片描述

为了解决问题1 我直接修改了package.json 中electron 版本号为目前最新等6.0.10
发现并解决了一个问题 界面变白并且 报错的问题。
Uncaught ReferenceError: require is not defined
at (index):
(index):1 Uncaught ReferenceError: process is not defined
at (index):1
Uncaught ReferenceError: module is not defined
at renderer.js:1
在这里插入图片描述
解决方案 在 mian.js中添加 即可
webPreferences: {
nodeIntegration: true,
},

    添加在main.js下
      mainWindow = new BrowserWindow({
	    webPreferences: {
	      nodeIntegration: true,
	    },
	    height: 563,
	    useContentSize: true,
	    width: 1000,
  });

升级好之后的版本号为
在这里插入图片描述
考虑到我们项目后续可能会升级vue版本以及迭代 所以放弃了以及不更新维护的electron-vue

2.vue-cli-plugin-electron-builder

另外一个推荐的基于vue的electron项目 只适用于vue-vli 3.0 版本及其以上
官网 https://nklayman.github.io/vue-cli-plugin-electron-builder/guide/guide.html
也做了简单的尝试 由于目前使用人数少 及项目贡献团队只有9人 也暂时放弃

2.基于react和Electron 项目(vue同理 只不过把react-cli 改为vue-cli 进行创建不同的项目)

推荐一个基于react 自己搭建 electron的方法
网站 https://www.jianshu.com/p/ea0852003209

我简单的描述下步骤

准备工作

1.安装node环境
下载node安装包(8.0以上版本):

https://nodejs.org/zh-cn/
安装过程不做赘述。

2.安装react脚手架
在终端输入以下代码进行React脚手架安装

扫描二维码关注公众号,回复: 10818737 查看本文章
npm install --global create-react-app

因为长城的原因,使用前请切换源,具体切换方法请参考:
https://blog.csdn.net/qq_27818541/article/details/62886790?locationNum=4&fps=1

创建React

1.脚手架安装完成后,执行以下命令,创建一个名为demo的应用
在这里插入图片描述
2.看到以下提示React项目即创建完成

在这里插入图片描述
3.继续输入以下命令,启动本React项目

cd demo
npm start

4.react 项目启动成功
在这里插入图片描述

把Electron和React结合
Create React App创建的项目是一个纯前端项目,把React项目整合进electron才是桌面端开发的开始。为了开发方便,同时还需保留热调试。

1.安装electron,在刚创建好的react项目文件夹中(demo文件夹),打开终端输入

npm install  electron --save --dev

在这里插入图片描述
在package.json文件中看到已安装好electron
在脚本中添加以下代码,作为启动electron框架的命令

"electron-start": "electron ."

在这里插入图片描述

2.在于package.json的同级新建一个名为mian.js的文件,文件内容可直接拷贝electron-quick-start项目中的文件:https://github.com/electron/electron-quick-start/blob/master/main.js
3.在package.json文件中,指定main.js作为electron的入口文件

4.(试探性)启动electron

npm run electron-start

在这里插入图片描述

能成功启动,说明electron的安装及入口文件配置没问题。
界面一片空白是因为我们的项目并没有和electron整合起来,下面把react项目整合进electron中

5.打开main.js,修改其中内容加载地址(暂且这么称呼),找到这里mainWindow.loadUrl方法

在这里插入图片描述

为了看到效果我们修改为这样:

在这里插入图片描述

6.重新启动整个项目,查看效果
这里需要同时启动两个终端,一个用来启动React项目

npm start

一个用来启动electron

npm run electron-start

Q:为什么会把electron内容加载地址改为localhost:3000?
A:因为react项目启动后的地址为localhost:3000,就是为了把启动后的项目加载进入electron中。同时因为React项目默认是有热更新,所以可以保证electron中的视图会随着react项目的修改而实现热调试
如果是vue的话 地址就要改为localhost:8080
在这里插入图片描述

当然我用vue-cli 也做了同样的调试依旧可行 只不过把react-cli创建一个app的过程,改为通过vue-cli创建而已

其中需要注意的有两点
1.

//配置build打包后的环境
mainWindow.loadFile(`dist/index.html`)
//结合热编译和当前开发环境关联看效果 
mainWindow.loadURL('http://localhost:8080')
// 打开开发者工具
  mainWindow.webContents.openDevTools()

3.最终使用的是 electron-react-boilerplate

为什么使用?
1.官方推荐
2.目前依旧维护并且使用人数较多 issues 回答频繁
github https://github.com/electron-react-boilerplate/electron-react-boilerplate
官网 https://electron-react-boilerplate.js.org/docs/installation

后续踩坑还会更新

希望可以通过前端技术 创建用户使用方便的桌面应用~~~

发布了54 篇原创文章 · 获赞 34 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/wen_binobject/article/details/101385516