electron 打包_Electron结合React开发桌面应用
React 结合 Electron 开发桌面应用入门
Electron 是 Github 发布的跨平台桌面应用开发工具,它支持使用 web 技术来开发桌面应用,即你可以使用 Html+css+JavaScript 来开发桌面应用,而不用学习新的桌面端开发语言。Electron 的图形界面渲染采用 Chromium 浏览器的内核实现,但又能通过 Node.js 调用丰富的原先操作系统 API。本文着眼于 Electron 结合 React 的开发实践。
Electron 快速开始
首先,安装 electron
npm install --save-dev electron
根据 Electron 官方的electron-quick-start,创建 Electron 应用最基础的三个组成部分:
main.js
用于控制应用主进程index.html
用于控制渲染进程package.json
项目配置
这里的主进程和渲染进程是 Electron 中的两个进程。主进程使用 BrowserWindow
实例创建页面。 每个 BrowserWindow
实例都在自己的渲染进程里运行页面。 当一个 BrowserWindow
实例被销毁后,相应的渲染进程也会被终止。
index.html
这里不多说,就是一个网页文件。main.js
中代码大致是这样的:
const { app, BrowserWindow } = require('electron');function createWindow() {// 创建浏览器窗口const win = new BrowserWindow({width: 800,height: 600,webPreferences: {nodeIntegration: true}});// 并且为你的应用加载index.htmlwin.loadFile('index.html');// 打开开发者工具win.webContents.openDevTools();
}// Electron会在初始化完成并且准备好创建浏览器窗口时调用这个方法
// 部分 API 在 ready 事件触发后才能使用。
app.whenReady().then(createWindow);//当所有窗口都被关闭后退出
app.on('window-all-closed', () => {// 在 macOS 上,除非用户用 Cmd + Q 确定地退出,// 否则绝大部分应用及其菜单栏会保持激活。if (process.platform !== 'darwin') {app.quit();}
});app.on('activate', () => {// 在macOS上,当单击dock图标并且没有其他窗口打开时,// 通常在应用程序中重新创建一个窗口。if (BrowserWindow.getAllWindows().length === 0) {createWindow();}
});// 您可以把应用程序其他的流程写在在此文件中
// 代码 也可以拆分成几个文件,然后用 require 导入。
其中win.loadFile('index.html')
用于窗口应用加载网页文件,即主进程和渲染进程的联通。
既然这样,我们是不是可以将使用 React 开发的单页应用打包后的index.html
作为渲染的主页?答案是肯定的。
package.json
:
{"name": "your-app","version": "0.1.0","main": "main.js","scripts": {"electron": "electron ."}
}
启动应用:
yarn electron
React 结合 Electron
这里 React 应用采用 webpack 构建。webpack 中对于 electron 应用有提供支持
- 开发模式
webpack 的配置中加一条:
module.exports = {target: 'electron-renderer'
};
表示构建完成的项目用于 electron 渲染。
package.json
添加一条启动 react 应用的脚本
{"scripts": {"electron": "electron .","start-renderer": "webpack-dev-server --config webpack.dev.js","build-react": "webpack --progress --config webpack.react.js"}
}
然后main.js
做相应修改
// 加载应用----适用于 react 项目
win.loadURL('http://localhost:3000/');
启动 React:
yarn start-renderer
启动 Electron
yarn electron
这样 react 项目的热更新也能应用到 electron 项目中。
- 生成模式
webpack 的配置中加一条:
module.exports = {target: 'electron-preload'
};
yarn build-renderer
打包 react 应用
main.js
做相应修改
win.loadFile('./dist/index.html');
然后使用electron-builder
打包成客户端应用。
electron 打包_Electron结合React开发桌面应用相关推荐
- electron结合JAVAweb_Electron结合React开发桌面应用
React 结合 Electron 开发桌面应用入门 Electron 是 Github 发布的跨平台桌面应用开发工具,它支持使用 web 技术来开发桌面应用,即你可以使用 Html+css+Java ...
- 【Electron】用前端技术开发桌面应用(一)
由于最近工作需求,紧急学习electron相关的技术知识,关于node.js的相关问题,后续会继续更新. [electron]简介及作用: electron的基本组成:Chromium + Node. ...
- Electron - 用前端的技术开发桌面应用(二)
之前已经出了Electron系列第一篇,实现了简单的Hello World,感兴趣的小伙伴可以去翻看:https://editor.csdn.net/md/?articleId=118417012今天 ...
- android开发入门与实践_Electron从入门到实践,前端开发者开发桌面App的最佳选择...
在开始之前,我想您一定会有这样的困惑:标题里的Electron 是什么?Electron能做什么?许多伟大的公司使用Electron框架的原因又是什么? 带着这些问题和疑惑,通过本文的介绍,可助您全面 ...
- java web打包神器_前端开发人员的桌面应用神器 Electron
原标题:前端开发人员的桌面应用神器 Electron 01 为什么用 Java 来开发桌面应用? 曾经的 Java 脆弱.简陋.甚至有被边缘化的危险,不过 Java 在经过了两次飞跃后(以 V8 为首 ...
- electron 前端开发桌面应用
electron是由Github开发,是一个用Html.css.JavaScript来构建桌面应用程序的开源库,可以打包为Mac.Windows.Linux系统下的应用. 快速开始 接下来,让代码来发 ...
- Electron开发桌面应用
由 Bazzzinga威 同学翻译自 Medium.https://medium.com/developers-writing/building-a-desktop-application-with- ...
- 前端实战:electron+vue3+ts开发桌面端便签应用
前端时间我的一个朋友为了快速熟悉 Vue3 开发, 特意使用 electron+vue3+ts 开发了一个桌面端应用, 并在 github 上开源了, 接下来我就带大家一起了解一下这个项目, 在文章末 ...
- Electron前端开发桌面程序--入门篇
前言 前端开发桌面程序这个概念已经出现有一段时间了,这项技术也已经走向成熟,Github上nw和光electron的star就差不多有10w颗星了,github也衍生出了很多开源的桌面项目俨然成了一个 ...
最新文章
- CocoaPods私有库搭建的记录
- 字符串转数字 sql_SQL注入·sqli-labs·基于错误的字符串/数字型注入(第1~2关)
- 多线程编程 之 (生产者与消费者(N多))同步常用的方法。
- 零基础学python需要多久-零基础学习Python开发需要多长时间?
- mysql根据注释搜索表
- scala字符替换_如何替换Scala中的“坏”字符?
- 理工男最该死的十二个瞬间
- Snipaste在Window运行后遇到提示计算机中丢失 api-ms-win-crt-runtime-l1-1-0.dll 错误
- 腾讯大数据之TDW计算引擎解析——Shuffle
- R7-2 统计字符[2] (10 分)
- IOS socket编程--Asyncsocket
- C++之指针探究(十四):回调函数
- 百度广告场景大数据治理应用实践
- Android中如何做到Service被关闭后又自动启动
- 【转】文件各种上传,离不开的表单
- NPM 常用命令和参数的意思
- 写一个生产者消费者的例子
- 【Python网络蜘蛛 · 1】:网络蜘蛛的基本介绍
- 数学 二维向量(加法、减法、模、点乘、叉乘)
- SPSS正态分布,泊松分布,指数分布,均匀分布检验
热门文章
- PTA 地下迷宫探索(图的遍历dfs)
- CIO40:探索智能制造之离散行业
- vue.use和vue.prototype的区别
- 如何看穿数据可视化的谎言
- 计算机网络幅移键控法,1.4.2 理解键控法
- 正则表达式:pattern=[^\\w]---------总结------------
- 深度学习基础笔记(MLP+CNN+RNN+Transformer等等)
- 麒麟子Cocos Creator实用技巧二:微信名字截断(支持表情)
- 西南科技大学全国计算机考试试题,西南科技大学《计算机辅助设计》题库AutoCAD试题四-A卷.doc...
- 4.Flink实时项目之数据拆分