当前位置: 首页 > article >正文

electron开发百度桌面应用demo及如何打包应用

1.开发入口文件main.js

1-1 加载百度URL

const { app, BrowserWindow, nativeImage } = require('electron')
const path = require('node:path')const createWindow = () => {const win = new BrowserWindow({width: 800,height: 600,})//加载百度URLwin.loadURL('https://www.baidu.com/')
}app.whenReady().then(() => {// 调用 createWindow 函数,该函数的作用是创建一个新的浏览器窗口createWindow()
})

1-2 设置窗口图标

1-2-1 根目录中添加ico图标,如图


1-2-2 入口文件main.js中设置icon

 const appIcon = nativeImage.createFromPath(path.join(__dirname, 'baidu.ico'))const win = new BrowserWindow({width: 800,height: 600,icon: appIcon,})

1-3 入口文件完整实例代码

const { app, BrowserWindow, nativeImage } = require('electron')
const path = require('node:path')const createWindow = () => {const appIcon = nativeImage.createFromPath(path.join(__dirname, 'baidu.ico'))const win = new BrowserWindow({width: 800,height: 600,icon: appIcon,})// 设置菜单不可见win.menuBarVisible = false;//加载指定路径的文件//win.loadFile('index.html')// 加载指定的 URLwin.loadURL('https://www.baidu.com/')
}app.whenReady().then(() => {// 调用 createWindow 函数,该函数的作用是创建一个新的浏览器窗口createWindow()
})

2.启动项目测试

npm run start

3.使用 Electron Forge打包应用

3-1 安装Electron Forge ,并使用现成的转化脚本将项目导入至 Electron Forge

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

3-1-1 安装完成检查package.json配置是否如下

3-2 package.json中添加打包应用图标配置

 "config": {"forge": {"packagerConfig": {"icon": "./logo.ico"}}},

3-3 打包应用

npm run make

3-4 解决打包错误

3-4-1 package.json中添加makers配置

 "config": {"forge": {"packagerConfig": {"icon": "./logo.ico"},"makers": [{"name": "@electron-forge/maker-squirrel","platforms": ["win32"]},{"name": "@electron-forge/maker-zip","platforms": ["win32"]}]}},

3-5 重新打包

npm run make

3-5-1 打包完成

打包完成看到一个 out 文件夹,其中包括可分发文件与一个包含其源码的文件夹,证明打包成功。

http://www.lryc.cn/news/2394122.html

相关文章:

  • 关于用Cloudflare的Zero Trust实现绕过备案访问国内站点说明
  • 2025年DDoS混合CC攻击防御全攻略:构建智能弹性防护体系
  • 方正字库助力华为,赋能鸿蒙电脑打造全场景字体解决方案
  • STM32 串口通信①:USART 全面理解 + 代码详解
  • 【Java Web】速通CSS
  • List 源码翻译
  • NHANES指标推荐:ALI
  • ChatGPT与认知科学:人机协同的未来图景
  • 数智管理学(十二)
  • UE5 Mat HLSL - Load
  • 【Unity笔记】Unity WASD+QE 控制角色移动与转向(含 Shift 加速)实现教程
  • HTML5 列表、表格与媒体元素、页面结构分析
  • Spring Boot 如何实现定时任务
  • 免费开源 PDF 阅读器 自带虚拟打印机功能 多格式兼容
  • 换宽带ip地址会变吗?同一个宽带如何切换ip地址
  • 第100+41步 ChatGPT学习:R语言实现误判病例分析
  • 贝锐蒲公英工业路由器R300A海外版:支持多国4G频段,全球组网
  • 字符串索引、幻读的解决方法
  • [特殊字符] 超强 Web React版 PDF 阅读器!支持分页、缩放、旋转、全屏、懒加载、缩略图!
  • wireshark分析国标rtp ps流
  • jetpack compose 界面刷新的几种方式 如何避免无效的界面刷新
  • 【STM32+LAN9252+HAL库】EtherCAT从站搭建 保姆级教程
  • 【harbor】--基础使用
  • JAVA学习 DAY1 初识JAVA
  • *JavaScript中的Symbol类型:唯一标识符的艺术
  • Vue能启动但访问空白?并报”export ‘default’ (imported as ‘Vue’) was not found in ‘vue’
  • Electron-vite【实战】MD 编辑器 -- 系统菜单(含菜单封装,新建文件,打开文件,打开文件夹,保存文件,退出系统)
  • 如何将 PDF 文件中的文本提取为 YAML(教程)
  • 【Docker系列】Docker 容器内安装`ps`命令
  • Netty 实战篇:为 Netty RPC 框架增加超时控制与重试机制,防止系统雪崩