码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 前端框架 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
  • 相关阅读:
    python多线程是如何工作
    C++项目:在线五子棋对战(网页版)
    Java程序设计——反射(Java高级应用)
    LeetCode 139 单词拆分
    linux笔记:MOOC Linux开发环境及应用
    虾皮插件能做数据分析的-知虾数据分析插件Shopee大数据分析平台
    JavaScript + setInterval实现简易数据轮播效果
    机器学习-无监督学习之聚类
    【知识学习】网络空间安全概论复习参考资料链接
    一文掌握GitHub Actions基本概念与配置
  • 原文地址:https://blog.csdn.net/qq_50909707/article/details/127917163
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号