electron实战 - 项目搭建

简介: electron实战 - 项目搭建

工欲善其事,必先利其器


从0入门electron + react  之 项目初始化搭建。

正所谓,你要去当一个运动员之前,你必须有一个好的底子,而我们本章就着重于项目初始化搭建。


安装依赖与环境

1. 我们需要安装判断electron的开发环境插件
npm install electron-is-dev --save-dev
2. 安装渲染进程的react开发环境
npx create-react-app 项目名
3. 安装electron环境
npm install electron --save-dev

配置electron主进程


等以上安装完成后。

我们则需要在当前的主目录下新建文件


main.js


做为electron的主进程。

并且我们还需要给这个elctron的主进程添加 一点东西

// 引入 electron 主进程文件
const { app, BrowserWindow } = require('electron')
// 引入electron 的开发环境判断
const isDev = require('electron-is-dev')
// 声明主进程变量值
let mainWindow
// app.on 判断环境是否加载结束。
app.on('ready', () => {
    mainWindow = new BrowserWindow({
        width: 1024,
        height: 680,
        webPreferences: {
            nodeIntegration: true,  // 开启渲染进程可以使用node。
            contextIsolation: false, // 在渲染进程中没法使用node.js的话 则需要将它设置为false。目前最新版本有这个问题
            enableRemoteModule: true, // 容易报错记得设置
        },
    })
    // 判断当前为dev环境的时候 让其走本地的localhost3000这个链接地址
    const usrLoadtion = isDev ? 'http://localhost:3000' : '假的地址'
    mainWindow.loadURL(urlLocation)
})

如上代码所示,我们在其中引入了electron的开发环境判断插件,引入了electron的开发环境。

同时我们创建了一个主窗口。并且给这个窗口设定它打开的地址为 本地的 localhost:3000。

好了。如果没理解的小伙伴可以留言或者从上往下再看一遍。

还没完哦~


配置electron到我们的开发命令中


下来我们需要在package.json中配置electron的开发引入。

// 1. 在package.json 中配置electron的主文件地址。也就是说需要我们把刚才创建的electron主进程文件添加到我们的package.json之中。
"main":"main.js"
// 2. 我们还需要在package.json 的script中添加electron的启动命令
"dev": "electrn ."

启动我们的第一个electron应用


好了,至此我们的基础项目初始化才基本搭建完毕。

这时候我们则可以使用命令


npm start


来启动react项目,让它生成localhost:3000 这个网址。

然后这个命令窗口不要关闭,我们还需要另起一个新的命令窗口并运行


npm run dev


来启动我们本地开发的electron容器。

看到这里,如果各位从上到下跟我的没什么区别的话,恭喜你,启动成功。

你已经启动了你的第一个electron桌面应用程序。


优化我们的electron启动(1)


不过这时候你可能有点不习惯,每次启动都需要两个命令,这个有点反人类啊。

别急,第二种方法来了!

// 1. 先修改package.json 中的electron启动命令 dev 为 ele
"ele":"electron ."
// 2. 再新增一个dev命令,然后融合react启动命令与electron启动命令
"dev": "npm start & npm run ele"

然后保存后再次在命令行启动 npm run dev.

你会发现,electron 也启动成功了,并且react也成功启动。

当然,这样的话还是会有问题的,你会发现,命令行里乱七八糟,你也不知道哪个命令是哪个命令的一脸懵逼。

所以这时候我们还需要第三种方法。


使用concurrently 启动我们的electron

第一步我们需要给项目安装concurrently


npm install concurrently --save-dev


其次,我们需要修改package.json中的命令


"dev": "concurrently \"electron .\" \"npm start\""


第三步,当然是运行我们的命令 npm run dev 。


看看是不是启动起来了呢。


而且在这里值得一提的是concurrently还是一个跨平台支持的哦~


看到这里是不是对着你们第一个electron项目已经心里有底气了?


别急!还没完!


我们需要对它做优化。


第一,你们目前的项目是不是会出现electron程序后,结果是白屏,过一会才会出现内容?


第二,你们现在启动react是不是会自动打开游览器跳到localhost:3000呢?


别急,我们来继续优化它。


解决electron启动后,项目还没有被启动问题。


1.  我们需要安装一个插件,wait-on

npm install wait-on --save-dev2. 我们需要修改package配置

"dev":"concurrently \"wait-on http://localhost:3000 && electron .\" \"npm start\""

这时候保存大家再次运行npm run dev 就会发现白屏的症状消失了。


防止启动项目时候 react 或者 vue 项目自动打开网页


1. 我们需要安装插件 cross-env  

npm install cross-env --save-dev

2. 需要在package中进行配置

"dev": "concurrently \"wait-on http://localhost:3000 && electron .\" \"cross-env BROWSER=none npm start\""

当这两部全部完成后,各位同学再去运行代码就会发现,不仅游览器不打开了,长时间白屏的问题也消失了。


好了,我们今天的electron-react的基本开发就到这里。

各位如果有什么问题,可以随时留言给我。

目录
相关文章
Electron + Vite + TS + Vue3打开新窗口实战
前言 我们在使用 Electron 编写桌面应用时,打开新窗口可以说是一个非常常见的场景了。很多刚接触 Electron 的小伙伴面对这样一个问题可能都会显得比较棘手,比如打开新窗口如何知道渲染哪一个页面?打开的新窗口如何与其它窗口产生联系,比如父子窗口?...等等一系列问题。 今天我们就将 Electron 打开新窗口的常见做法分享给大家,而且是基于最新的 TS 封装。
1764 0
Electron + Vite + TS + Vue3打开新窗口实战
|
7月前
|
API CDN
Electron Markdown编辑器实战:资源管理器实现
Electron Markdown编辑器实战:资源管理器实现
|
7月前
|
存储 Web App开发 iOS开发
Electron 从基础到实战笔记 - Electron App对象及其事件
Electron 从基础到实战笔记 - Electron App对象及其事件
256 0
|
前端开发 JavaScript API
命令行终端是怎么做的?教你写一个命令行终端[electron实战]
前言 Electron很出名,很多人可能了解过,知道它是用来开发桌面端的应用,但是一直没有在项目中实践过,缺乏练手的实践项目。 很多开源的命令行终端都是使用Electron来开发的,本文将从零开始手把手的教大家用Electron写一个命令行终端。 作为一个完整的实战项目示例,该终端demo也将集成到Electron开源学习项目electron-playground中,目前这个项目拥有800+ Star⭐️,它最大的特点是所见即所得的演示Electron的各种特性,帮助大家快速学习、上手Electron。 大家跟着本文一起来试试Electron吧~ 下载试玩 本文命令行终端demo的代码量很少,
708 0
命令行终端是怎么做的?教你写一个命令行终端[electron实战]
|
缓存 JavaScript 前端开发
Electron + Vue3 + TS + Vite 桌面应用项目搭建教程!
前言 Electron主要是用来搭建桌面应用程序的,虽然有许多人不喜欢它,但是也不能撼动目前它的王者地位!使用Electron可以让我们前端开发者快速搭建出桌面应用程序,我们所熟知的VS code就是使用Electron开发的。 由于Electron更新迭代非常快,加上Vue3已经发布很长一段时间了,所以我们很有必要将我们的项目升级一下,所以这里就利用electron+Vue3搭建一个万精油的项目框架!
2992 0
Electron + Vue3 + TS + Vite 桌面应用项目搭建教程!
|
Web App开发 编解码 JavaScript
优酷播放体验优化实战(六)--Electron跨平台进阶:Native播放器融合
随着桌面应用开发技术的发展,程序的跨平台性和代码的维护成本显得尤为重要,目前优酷Windows平台采用QT作为UI的主要开发方案,DuiLib辅助一些扩展插件开发,Mac平台采用原生的Native UI开发,由于历史原因并没有将Windows端的QT框架迁移到Mac端,两端分别维护耗费不同人力。
2198 0
优酷播放体验优化实战(六)--Electron跨平台进阶:Native播放器融合
|
存储 JavaScript 数据安全/隐私保护
Electron-vue实战-每日清单---04登录页面与开机自启动的实现
Electron-vue实战-每日清单---04登录页面与开机自启动的实现
Electron-vue实战-每日清单---04登录页面与开机自启动的实现
|
存储 JSON 前端开发
Electron-vue实战-每日清单---03功能介绍与环境搭建
Electron-vue实战-每日清单---03功能介绍与环境搭建
|
资源调度 JavaScript 开发工具
Electron-vue实战-每日清单---02Electron-vue的目录详解
Electron-vue实战-每日清单---02Electron-vue的目录详解
|
Web App开发 JavaScript 前端开发
electron打包web项目之stackedit实战——反面教材
很抱歉,误导大家了。electron只支持客户端web项目,package.json里的scripts字段太误导人了。让我傻傻地以为真的可以在里面写一个 node server.js呢。
3115 0