Electron桌面程序开发入门

2023-10-26

1.Electron结合vue项目配置

Electron是利用web前端技术进行桌面应用开发的一套框架。是由 github 开发的开源框架,允许开发者使用 Web 技术构建跨平台的桌面应用,它的基本结构:

Electron = Chromium + Node.js + Native API

2.Electron安装

git clone https://github.com/electron/electron-quick-start
// 项目安装(推荐)
cnpm install electron --save-dev 
cnpm install electron-packager --save-dev //这个是打成exe文件的插件,之后要用,提前下载好

把electron-quick-start项目中的main.js搬到vue的build文件中,并改个名字electron.js。

因为文件的相对位置进行了改变,electron的入口文件变成了vue build之后的文件地址,也就是dist文件夹下的 index.html,所以此时的electron.js 里面的引用地址也要变,即:

mainWindow.loadURL(url.format({
    pathname: path.join(__dirname, '../dist/index.html'),
    protocol: 'file:',
    slashes: true
  }))
在package.json文件中增加一条指令,用来启动electron,即:

"scripts": {
    "dev": "node build/dev-server.js",
    "start": "npm run dev",
    "build": "node build/build.js",
    "lint": "eslint --ext .js,.vue src",
    "electron_dev": "npm run build && electron build/electron.js"
  },
  运行之前必须有打包的静态资源
  npm run electron_dev 执行
打包exe
  "electron_build": "electron-packager ./dist/ --platform=win32 --arch=x64 --icon=./src/assets/favicon.ico --overwrite"
关于electron-packager的配置,简单介绍一下。
electron-packager <sourcedir> <appname> –platform=<platform> –arch=<arch> [optional flags…]

sourcedir 资源路径,在本例中既是./dist/
appname 打包出的exe名称
platform 平台名称(windows是win32)
arch 版本,本例为x64
npm run electron_build
https://blog.csdn.net/j_bleach/article/details/78513282

electron创建使用

https://github.com/zouzhibin/vue-admin-perfect
# 官网已经有 electron-quick-start 仓库克隆下来
git clone https://github.com/electron/electron-quick-start
# 进入文件夹
cd electron-quick-start
# 安装依赖包并运行
npm install && npm start
新建dist 文件  更改main.js 文件的主入口文件路径
打包dist文件需要更改路径 ./

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Electron桌面程序开发入门 的相关文章

  • Vue:v-model 不适用于动态组件

    例如
  • 外部 API 的 CORS 问题 - 通过 PostMan 工作,但不能使用 Axios 进行 HTTP 请求 [重复]

    这个问题在这里已经有答案了 正在开发一个涉及汽车数据的新 Laravel 项目 并找到了一个免费的查找 API http www carqueryapi com documentation api usage 一个示例端点是 https w
  • Vue.js 隐藏当前视口之外的项目

    我正在 Vue js 中制作一个电子商务类型的菜单 其中的项目是包含大量功能和图像的 div 当渲染大约 200 个这样的项目时 性能相当不错 但是当添加的数量超过这个数量时 网站的性能开始变得缓慢 如果 Vue 元素位于当前可滚动视图之外
  • 如何在 Electron 应用程序中显示“另存为”对话框?

    我正在编写一个要在所有平台上分发的 NodeJS Electron 应用程序 我有一个下载按钮 我想弹出一个 另存为 对话框 其中包含从服务器提供的文件 有人知道最好的方法吗 以下是我在本地运行节点应用程序时尝试过的方法 但在使用电子打包器
  • 如果不刷新页面,Vuex 状态不会更新

    我正在构建一个单页面应用程序 用户可以根据他们是否登录来看到不同的页面 登录调用工作正常 授权令牌保存在本地存储中 设置 我已经设置了一个名为的吸气剂loggedIn返回true如果在状态上设置了令牌 这是我的确切代码auth js商店模块
  • 读取 URL 查询参数值 (Vue.js)

    在 vuejs 回调 URL 中 我有一些参数值 我需要读取这个参数值 例如返回url是 http localhost 8080 sucesspage encryteddata abdeshfkkilkalidfel 9a 我努力了this
  • 停止接收来自被破坏的子组件的事件

    我有一个父级 我可以在其中动态添加子组件 当在挂载中添加子组件时 我为事件注册一个侦听器 EventBus on content type saving function logic here 问题是 当通过从子组件数组中删除该组件而在父组
  • 使用 Electron 和 Systemjs 导入节点模块

    我只是想知道如果系统js在自己的注册表中找不到该模块 是否可以让systemjs使用require remote require nodemodule 我认为当使用带有 typescript 和 commonjs 模块的 Electron
  • VueJS 在内联模板组件中重新编译 HTML

    我已经包装了 bootstrapTable https github com wenzhixin bootstrap table https github com wenzhixin bootstrap table 到指令中 如下所示 Vu
  • 我需要从带有数据页的页面在组件中运行函数

    我有一个用于绘制图形或树的组件 并且我在页面中使用此组件 我的 axios 在页面上并提供数据 我需要将数据传递给组件的函数 然后从页面数据中绘制我的树 My Page
  • Cypress Vue 组件测试从已挂载发出的事件

    我有一个 vue2 组件 它在其安装的生命周期挂钩中发出一个事件 该事件被发出 并且可以由使用该组件的页面处理 但是 我还想测试该事件是否在我的组件测试中发出 该测试使用赛普拉斯组件测试运行程序 这是一个精简版本 组件 TheCompone
  • 如何使用新的 html 文件打开更新电子浏览器窗口

    我是电子新手 我有两个 html 页面 我想在单击按钮时打开第二个页面 我的代码如下 但我只是得到一个空白窗口 不是第二页 这是index js const electron require electron const app Brows
  • Vue cli 3项目,图像路径中的动态src不起作用

    我在 vue 组件中引用图像 url 例如 img alt Vue logo src statics reports logo png 这有效 但在尝试的同时 img alt Vue logo data return imgPath sta
  • Angular2 rc5 和 Electron 错误 - 无法使用解析组件

    我正在学习如何将 Angular2 与 Electron 一起使用 目前我正在使用最新的 Angular rc5 和最新版本的 Electron 我决定使用官方的 Angular 教程 英雄之旅 在我开始路由之前 我没有遇到什么大问题 我必
  • 超出最大调用堆栈大小 - Vue.js

    我有一个计算方法 可以让我计算产品的总价和折扣值 并希望获得以下值 总计 折扣 cartTotal var total 0 var discount Math round 0 1 this cartTotal 100 100 this ca
  • Electron 为触摸屏启用触摸事件

    我有一个连接到触摸屏的 Raspberry Pi 并通过 startx 命令在其上运行电子应用程序 startx electron app nocursor 我无法处理触摸事件 例如 touchstart touchend 的问题 显然这是
  • vue.js keyup, keydown 事件落后一个字符

    我正在使用 keydown keyup 事件 它调用一个 javascript 函数 该函数将输入框的值打印到控制台 以及事件的 currentTarget 字段的值 并且我注意到它晚了一个字符 例如 如果我输入hello进入输入框 我只看
  • vue中有自动更新这段代码的东西吗?

    我在导航器中找到了这个按钮 当用户登录时会显示该按钮 而当用户注销时该按钮就会消失 但现在我需要在按钮删除 出现之前刷新页面 这是我的代码 Button div div class div div
  • 从vue中的api加载路由

    我正在尝试从我的 API 在 Vue 应用程序中加载路由 我尝试将数据推送到路由变量并使用 addRoutes 方法 但没有运气 我认为异步可能存在问题 但为什么 addRoutes 不起作用 这是我的代码 import Vue from
  • `success` 方法已被弃用。使用“then”方法代替

    您好 我是 Vue 世界的新手 这是我收到的警告 成功方法已被弃用 请改用 then 方法 这是代码 apiURL api movies new Vue el app data movies ready function this getM

随机推荐

  • opengl的纹理过滤

    和纹理映射相关的另一个重要概念是 过滤 我们已经讨论了怎样将纹理坐标 这是个0到1之间的分数 映射到纹素上 纹理贴图中纹素的坐标总是以整数定义的 但是如果纹理坐标映射到纹素上的坐标为 152 34 745 14 怎么办 不明智的方案是将这个
  • css的三种引入方式

    目录 三种引入方式 1 行内样式 2 内部样式 内嵌式 3 外部样式 3 1外链式 3 2导入式 引入方式的优先级 三种引入方式 1 行内样式 行内样式就是直接把css样式添加在HTML标签中 作为style样式的属性值
  • DDR4 设计概述以及分析仿真案例(硬件学习)

    转载 DDR4 设计概述以及分析仿真案例 硬件设计讨论 EDA365电子论坛网 引言 随着计算机 服务器的性能需求越来越高 DDR4开始应用在一些高端设计中 然而目前关于DDR4的资料非常少 尤其是针对SI 信号完整性 部分以及相关中文资料
  • ODBC 各种数据库连接串

    Overview Generally one of the first steps when you are trying to work with databases is open it You can find several typ
  • 查看及配置交换机管理地址

    查看及配置交换机管理地址 问题 交换机是目前用于组建局域网的主要设备 交换机根据MAC地址表实现数据帧的转发 通过查看MAC地址表更加有利于交换机工作原理的理解 通过查看CISCO设备邻居信息来了解网络拓扑 通过telnet方式远程访问 配
  • Selenium+python之隐藏浏览器的“Chrome正在受到自动软件的控制“提示语

    在执行测试用例 细心的人都会发现 浏览器的title部分 有一句提示语 Chrome正在受到自动软件的控制 那么 能不能去掉这句提示语呢 也是没问题的 同样的 使用 headless 在浏览器中加入 disable infobars 这个参
  • pyecharts学习小总结——Bar(柱状图)、Pie(饼图)、Line(线图)、Page(页面组件)、Tab(分页组件)、Grid(组合组件)

    目录 pyecharts常用模块总结 Bar 柱状图 1 旋转x轴标签 2 添加工具箱 3 柱状图与折线图混合 4 标注x轴名称 5 设置垂直的一天时间线 6 旋转x和y轴 Pie 饼图 1 设置位置和半径大小 Line 线图 1 设置平滑
  • pip install scipy时发生zipfile.BadZipFile: File is not a zip file解决办法

    应该是下载时发生了丢包 我在官网下载时 只有14M 切换到豆瓣源有30M 附上地址 https pypi doubanio com simple scipy
  • java程序移植_java JDBC 提高程序可移植性

    介绍jdbc一般的程序 程序编程相关 jb oracle weblogic c 很多java初学者在开始接触jdbc编程的时候 在网上与大部分的教材上都是这样 推荐阅读 Java线程入门 什么是线程 import java sql 扩展信息
  • 预训练语言模型(PLMs)综述

    预训练语言模型 PLMs 内容来自AACL 2022 Tutorial https d223302 github io AACL2022 Pretrain Language Model Tutorial https d223302 gith
  • Mysql进阶索引篇02——InnoDB存储引擎的数据存储结构

    前言 前面我们已经剖析了mysql中InnoDB与MyISAM索引的数据结构 了解了B 树的设计思想 原理 并且介绍了B 树与Hash结构 平衡二叉树 AVL树 B树等的区别和实际应用场景 页和页之间并不一定在物理上相连 只是在逻辑上使用双
  • java内存

    在java视频中 一直强调java内存的重要性 如果真正理解 了java内存的分配情况和程序运行时的java内存 那么你会对 java编程的思想 会更加深刻 Java内存分配与管理是Java的核心技术之一 Java的内存分配有三种 一 静态
  • 使用WPD API操作MTP设备一些总结

    使用WPD API操作MTP设备总结 本文分为两部分 1 WPD基本架构和概念的理解 2 使用WPD API操作MTP 拷贝 删除 设备 1 WPD基本架构和概念 1 1 WPD架构 原文 https docs microsoft com
  • Vue脚手架的安装配置以及使用

    安装Vue脚手架 1 需要安装nodejs支持 去nodejs官网下载对应版本的nodejs 可以使用installer 选择安装目录点击安装 也可以使用binary文件 直接选择文件夹解压缩 安装完成后如上图所示 然后配置环境变量 1 添
  • C++中指针和应用有哪些区别?

    a 指针是一个新的变量 存储了另一个变量的地址 我们可以通过访问这个地址来修改另一个变量 引用只是一个别名 还是变量本身 对引用的任何操作就是对变量本身进行操作 以达到修改变量的目的 b 引用只有一级 而指针可以有多级 c 指针传参的时候
  • show processlist 命令执行结果解释

    show full processlist show processlist 显示哪些线程正在运行 也可以通过 INFORMATION SCHEMA PROCESSLIST 表或 mysqladmin processlit 获取这些信息 如
  • 设计模式-状态模式(State)

    文章目录 前言 状态模式的核心概念 状态模式的用途 示例 状态模式的Java实现 状态模式优缺点 总结 前言 当我们需要在对象的生命周期中管理不同状态时 状态模式 State Pattern 是一种有用的设计模式 在这篇博客中 我们将介绍状
  • 免费的 PPT 模版资源

    1 第一 PPT 第一PPT站内资源以免费下载为基础 本着开放的共享为原则 服务于国内广大国内PPT爱好者 目前第一PPT站内的所有PowerPoint资源 PPT模板 PPT背景 PPT 素材 PPT教程 PPT软件 均是免费下载 所以请
  • openVPN服务端搭建

    搭建步骤 云服务器 Ubuntu 20 04 1 LTS 搭建服务端 公网IP 47 215 测试客户端 部门内部成员的windows10 或者windows11 及mac电脑 还有现场linux环境 最后目标是实现所有客户端之间能够互联
  • Electron桌面程序开发入门

    1 Electron结合vue项目配置 Electron是利用web前端技术进行桌面应用开发的一套框架 是由 github 开发的开源框架 允许开发者使用 Web 技术构建跨平台的桌面应用 它的基本结构 Electron Chromium