依星源码资源网,依星资源网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 23|回复: 0

使用Electron创建桌面程序,从创建到打包

[复制链接] 主动推送

1017

主题

1023

帖子

1389

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1389
发表于 2024-6-12 09:17:15 | 显示全部楼层 |阅读模式
使用Electron创建桌面程序,从创建到打包
在桌面程序中,使用C#语言可以创建winform和WPF程序,他们2个在Windows中都非常的优秀,还有就是使用QT开发桌面,可以跨平台开发,这三种都是比较“正规”的,而Electron是使用框架开发桌面程序的,还有其他的框架也可以开发桌面程序等等。下面介绍一下Electron开发桌面程序,只要会使用vue,那么使用Electron也非常的简单。官网如下:
简介 | Electron
本案例环境win10,VisualStudioCode,node,npm

1.首先创建一个文件夹electronDemo

使用Electron创建桌面程序,从创建到打包

使用Electron创建桌面程序,从创建到打包
2.然后进入根目录中, 输入
  1. npm init
复制代码
  • entry point 应为 main.js.
  • author 与 description 可为任意值,但对于应用打包是必填项。
效果如图所示:

使用Electron创建桌面程序,从创建到打包

使用Electron创建桌面程序,从创建到打包

3.将electron包安装到应用的开发依赖中

这个安装需要等一会儿

  1. npm install --save-dev electron
复制代码

使用Electron创建桌面程序,从创建到打包

使用Electron创建桌面程序,从创建到打包

4.使用VisualStudioCode打开程序

其实上面的命令也可以在VisualStudioCode的终端中执行

使用Electron创建桌面程序,从创建到打包

使用Electron创建桌面程序,从创建到打包

第一个文件就是使用node包,第二和第三都是配置文件,这个和创建vue程序是一样的。

5.然后创建main.js文件

  1. // main.js

  2. // electron 模块可以用来控制应用的生命周期和创建原生浏览窗口
  3. const { app, BrowserWindow } = require('electron')
  4. const path = require('path')

  5. const createWindow = () => {
  6.   // 创建浏览窗口
  7.   const mainWindow = new BrowserWindow({
  8.     width: 800,
  9.     height: 600,
  10.     webPreferences: {
  11.       preload: path.join(__dirname, 'preload.js')
  12.     }
  13.   })

  14.   // 加载 index.html
  15.   mainWindow.loadFile('index.html')

  16.   // 打开开发工具
  17.   // mainWindow.webContents.openDevTools()
  18. }

  19. // 这段程序将会在 Electron 结束初始化
  20. // 和创建浏览器窗口的时候调用
  21. // 部分 API 在 ready 事件触发后才能使用。
  22. app.whenReady().then(() => {
  23.   createWindow()

  24.   app.on('activate', () => {
  25.     // 在 macOS 系统内, 如果没有已开启的应用窗口
  26.     // 点击托盘图标时通常会重新创建一个新窗口
  27.     if (BrowserWindow.getAllWindows().length === 0) createWindow()
  28.   })
  29. })

  30. // 除了 macOS 外,当所有窗口都被关闭的时候退出程序。 因此, 通常
  31. // 对应用程序和它们的菜单栏来说应该时刻保持激活状态,
  32. // 直到用户使用 Cmd + Q 明确退出
  33. app.on('window-all-closed', () => {
  34.   if (process.platform !== 'darwin') app.quit()
  35. })

  36. // 在当前文件中你可以引入所有的主进程代码
  37. // 也可以拆分成几个文件,然后用 require 导入。
复制代码

6.再创建index.html

  1. <!--index.html-->

  2. <!DOCTYPE html>
  3. <html>
  4.   <head>
  5.     <meta charset="UTF-8">
  6.     <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
  7.     <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
  8.     <title>你好!</title>
  9.   </head>
  10.   <body>
  11.     <h1>你好!故里2130</h1>
  12.     我们正在使用 Node.js <span id="node-version"></span>,
  13.     Chromium <span id="chrome-version"></span>,
  14.     和 Electron <span id="electron-version"></span>.

  15.     <!-- 您也可以此进程中运行其他文件 -->
  16.     <script src="./renderer.js"></script>
  17.   </body>
  18. </html>
复制代码

7.创建preload.js

  1. // preload.js

  2. // 所有的 Node.js API接口 都可以在 preload 进程中被调用.
  3. // 它拥有与Chrome扩展一样的沙盒。
  4. window.addEventListener('DOMContentLoaded', () => {
  5.     const replaceText = (selector, text) => {
  6.       const element = document.getElementById(selector)
  7.       if (element) element.innerText = text
  8.     }
  9.   
  10.     for (const dependency of ['chrome', 'node', 'electron']) {
  11.       replaceText(`${dependency}-version`, process.versions[dependency])
  12.     }
  13.   })
复制代码

8.最后的项目结构如下

并且在红色的部分增加命令,表示启动的时候访问electron

  1. "start": "electron .",
复制代码

使用Electron创建桌面程序,从创建到打包

使用Electron创建桌面程序,从创建到打包

9.然后在终端输入

  1. npm run start
复制代码

使用Electron创建桌面程序,从创建到打包

使用Electron创建桌面程序,从创建到打包

10.效果

和正常的winform和wpf布局是一样的。

使用Electron创建桌面程序,从创建到打包

使用Electron创建桌面程序,从创建到打包

11.对开发的程序,进行打包成exe

先输入

  1. npm install --save-dev @electron-forge/cli
复制代码

使用Electron创建桌面程序,从创建到打包

使用Electron创建桌面程序,从创建到打包

再输入

  1. npx electron-forge import
复制代码

使用Electron创建桌面程序,从创建到打包

使用Electron创建桌面程序,从创建到打包

再输入

  1. npm run make
复制代码

使用Electron创建桌面程序,从创建到打包

使用Electron创建桌面程序,从创建到打包

12.虽然报错了,但是还是可以运行的

打包的方式不仅仅只有这一种,还有别的方式。

使用Electron创建桌面程序,从创建到打包

使用Electron创建桌面程序,从创建到打包

使用Electron创建桌面程序,从创建到打包

使用Electron创建桌面程序,从创建到打包



相关帖子

扫码关注微信公众号,及时获取最新资源信息!下载附件优惠VIP会员5折;永久VIP免费
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,请勿任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4、论坛的所有内容都不保证其准确性,完整性,有效性,由于源码具有复制性,一经售出,概不退换。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请来信【站长信箱312337667@qq.com】告之,本站将立即删除。
郑重声明:
本站所有资源仅供用户本地电脑学习源代码的内含设计思想和原理,禁止任何其他用途!
本站所有资源、教程来自互联网转载,仅供学习交流,不得商业运营资源,不确保资源完整性,图片和资源仅供参考,不提供任何技术服务。
本站资源仅供本地编辑研究学习参考,禁止未经资源商正版授权参与任何商业行为,违法行为!如需商业请购买各资源商正版授权
本站仅收集资源,提供用户自学研究使用,本站不存在私自接受协助用户架设游戏或资源,非法运营资源行为。
 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
312337667

微信扫一扫,私享最新原创实用干货

QQ|免责声明|依星源码资源网 ( 鲁ICP备2021043233号-3 )|网站地图

GMT+8, 2024-6-22 04:09

Powered by Net188.com X3.4

邮箱:312337667@qq.com 客服QQ:312337667(工作时间:9:00~21:00)

快速回复 返回顶部 返回列表