• 前端框架 Electron 使用总结


    目录

    一、基础搭建

    通过脚手架搭建

    1、Electron官方案例搭建环境

    2、查看调试

    3、菜单的使用

    4、图标配置

    5、项目打包


    web应用相信每位程序员都不陌生,PC端应用可能会底层开发的就不是太多了,下面的这套技术栈就是为前端程序员快速一键搭建windows、Linux、Mac的PC端应用而生的,只要会React实现Web开发即可。Electron使用很广泛,VScode编辑器就是Electron框架做的。

    electron官方文档:

    简介 | Electron

    一、基础搭建

    通过脚手架搭建

    Electron脚手架 - ElectronForge使用文档_wanzheng_96的博客-CSDN博客

    1、Electron官方案例搭建环境

    快速入门 | Electron

    这里搭建到这一步后见我的代码:

     此时我们的项目结构:

     main.js代码如下:

    1. const { app, BrowserWindow } = require('electron')
    2. app.on("ready",()=>{
    3. const mainWindow = new BrowserWindow({
    4. width: 500,
    5. height: 500
    6. })
    7. mainWindow.loadFile('./src/index.html').then()
    8. })

    运行项目:

    npm run start

    弹出小窗口:

     第一个案例运行成功!

    但此时是没有热更新的功能的,每次修改完代码,我们都需要重启,所以这里添加一个热更新依赖:

    yarn add --dev electron-reloader

    main.js修改如下:

    1. const { app, BrowserWindow } = require('electron')
    2. //热加载
    3. const reLoader=require("electron-reloader")
    4. reLoader(module)
    5. //监听初始化完成的生命周期
    6. app.on("ready",()=>{
    7. const mainWindow = new BrowserWindow({
    8. width: 700,
    9. height: 700
    10. })
    11. mainWindow.loadFile('./src/index.html').then()
    12. })

    这样便有热更新功能了。

    2、查看调试

    可以通过ctl+shift+i查看控制台

    3、菜单的使用

    参考文档:Menu | Electron

    在main.js同级目录下创建menu.js用于存放menu数据,menu.js代码如下:

    1. const { BrowserWindow, Menu } = require("electron")
    2. //定义菜单模板
    3. const template = [
    4. {
    5. label: "文件",
    6. submenu: [
    7. {
    8. label: "新建窗口",
    9. click () {
    10. new BrowserWindow({
    11. width: 500,
    12. height: 500
    13. })
    14. }
    15. }
    16. ]
    17. },
    18. {
    19. label: "关于我们"
    20. }
    21. ]
    22. const menu = Menu.buildFromTemplate(template)
    23. Menu.setApplicationMenu(menu)

    再到main.js里引入,引入后代码如下:

    1. const { app, BrowserWindow } = require("electron")
    2. //热加载
    3. const reLoader = require("electron-reloader")
    4. reLoader(module)
    5. //监听初始化完成的生命周期
    6. app.on("ready", () => {
    7. const mainWindow = new BrowserWindow({
    8. width: 700,
    9. height: 700
    10. })
    11. mainWindow.loadFile("./src/index.html").then()
    12. })
    13. require("./menu.js")

     效果:点击文件->新建后有新窗口弹出

    自定义菜单

    效果:可以看到此时并无边框

     自定义的菜单只需要通过html等写到对应的页面中即可!

    4、图标配置

    5、项目打包

    方案一:electron forge打包,官方推荐

    Electron教程(三)如何打包 electron 程序:electron-forge 的使用教程_十月ooOO的博客-CSDN博客

    方案二: windows打包

    应用打包

    这里我们使用electron-packager来进行打包。全局方式下下载安装:

    npm install -g electron-packager

    在项目根目录执行以下打包命令:

    electron-packager . HelloWorld --win --out ../HelloWorldApp --arch=x64

    这里,我们声明项目名称为HelloWorld, 仅打包到Windows 64位平台,打包输出文件为根目录上一级的HelloWorldApp目录。执行后将会输出:

    1. Packaging app for platform win32 x64 using electron v9.0.3
    2. Wrote new app to ..\HelloWorldApp\HelloWorld-win32-x64

    我们在..\HelloWorldApp\HelloWorld-win32-x64 目录下会发现出现了以下文件:

    双击HelloWorld.exe即可运行我们的应用。

    因为每次打包都要输入那么长串命令,效率特低,没有一种编程愉悦感,我们可以将打包命名写在 package.json 文件里。在scripts配置部分加入以下配置:

    "package": "electron-packager . HelloWorld --win --out ../HelloWorldApp --arch=x64"

    然后执行以下命令进行打包:

    npm run-script package
  • 相关阅读:
    8月19日PMP出成绩时间公布了!查询攻略请收好!
    操作系统(OS) 基础知识
    THREE--demo4
    计算机组装与维护实训室解决方案
    docker中安装RabbitMQ(DelayExchange)插件
    全新酷盒9.0源码:多功能工具箱软件的最新iapp解决方案
    C++面试八股文:了解auto关键字吗?
    2022牛客暑期多校训练营6(ABGIJM)
    扩容LVM卷导致lvm元数据丢失的恢复过程
    3D游戏角色动画
  • 原文地址:https://blog.csdn.net/qq_50909707/article/details/127917163