• Electron的使用


    1.创建一个空白文档,根据下面的命令会生成个page.json文件

    mkdir my-electron-app && cd my-electron-app
    npm init
    
    • 1
    • 2

    交互是命令会提示在配置中设置一些字段,需要注意:
    入口文件应该是main.js
    author和description可以是任何值,但是在打包的时候是必填的
    package.json文件应如下:

    {  
      "name": "my-electron-app",  
      "version": "1.0.0",  
      "description": "Hello World!",  
      "main": "main.js",  
      "author": "Jane Doe",  
      "license": "MIT"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    然后,将electron包安装到您的应用程序的devDependencies.
    2.安装electron

    npm install --save-dev electron
    
    • 1

    可能会出现安装不成功
    可以尝试

    npm config set ELECTRON_MIRROR http://npm.taobao.org/mirrors/electron/
    
    • 1

    3.在packeage.json中添加start命令

    {  
      "scripts": {    
         "start": "electron ."  
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.在根目录下创建一个入口文件main.js
    5.创建一个index.html,就是自己的网页内容
    6.在main.js中添加两个Electron模块

    • app 控制应用程序事件生命周期的模块。
    • BrowserWindow 创建和管理应用程序窗口的模块。
    const { app, BrowserWindow } = require('electron')
    const path = require('path');
    const createWindow = () => {
      const win = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
          preload: path.join(__dirname, 'preload.js')
        }
      })
      win.loadFile('home.html')//BrowserWindow实例加载index.html
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    接下来,调用这个createWindow()函数来打开你的窗口。
    在 Electron 中,浏览器窗口只能在app模块ready事件触发后创建。app.whenReady()您可以使用API等待此事件 。 在解决其 PromisecreateWindow()后调用。whenReady()

    app.whenReady().then(() => {
      createWindow()
    })
    
    • 1
    • 2
    • 3

    main.js的全部代码

    const { app, BrowserWindow } = require('electron');
    const path = require('path');
    const createWindow = () => {
      const win = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
          preload: path.join(__dirname, 'preload.js')
        }
      })
    
      win.loadFile('home.html')
    }
    app.whenReady().then(() => {
      createWindow()
    })
    
    app.on('window-all-closed', () => {
      if (process.platform !== 'darwin') app.quit()
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    打包 安装

    npm install --save-dev @electron-forge/cli
    npx electron-forge import
    
    • 1
    • 2

    使用 Forge 的命令make创建一个可分发的

    npm run make
    
    • 1

    在这里插入图片描述
    遇到上述报错不影响打包

  • 相关阅读:
    图论09-桥和割点
    Go语言中的Gin框架的初步使用
    精简版STC单片机串口程序(只有初始化和sendbyte)
    SQL Server Not Null约束
    Echart图表收起/展开后无法重新渲染实现自适应(亲测有效)-开发bug总结5
    详解虚拟机!京东大佬出品 HotSpot VM 源码剖析笔记(附完整源码)
    使用正则表达式批量修改函数
    AI 绘画 | Stable Diffusion 高清修复、细节优化
    Google Earth Engine(GEE)——GHSL:全球人类住区层,建成网格 1975-1990-2000-2015 (P2016) 数据集
    Notion+Zotero+Notero 联动教程(23年9月更新版)
  • 原文地址:https://blog.csdn.net/weixin_44202904/article/details/126889144