Electron打包桌面应用程序
Electron打包桌面应用程序
Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。
github项目地址:https://github.com/wukingui/electron-app
博客地址:https://www.xiaofly.cn/post-details?id=627b25fd6ab15234c68a1677
一、初始化项目
1、npm init
指令初始化项目配置:
entry point
选项的值应为main.js
author
和description
也必须填写,但是可以填写任意值
package.json
{"name": "electron-app","version": "1.0.0","description": "a electron app demo","main": "main.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"author": "xxx@gmail.com","license": "ISC"
}
2、安装依赖:
npm install --save-dev electron electron-builder
3、修改package.json
,在scripts
里添加start
指令:
"start": "electron ."
4、执行npm start
启动项目,会发现如下图报错:
这是因为现在还没有mian.js
文件,线程找不到主进程。
二、创建视图文件和入口文件
1、新建index.html视图文件。
<!--index.html-->
<!DOCTYPE html>
<html><head><meta charset="UTF-8"><meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'"><meta http-equiv="X-Content-Security-Policy" content="default-src 'self'; script-src 'self'"><title>Electron App</title></head><body><h1>Electron App</h1><p>这是我的第一个桌面应用程序</p></body>
</html>
2、再创建preload.js
预加载脚本文件:
// preload.js
window.addEventListener('DOMContentLoaded', () => {const replaceText = (selector, text) => {const element = document.getElementById(selector)if (element) element.innerText = text}for (const type of ['chrome', 'node', 'electron']) {replaceText(`${type}-version`, process.versions[type])}
})
3、接下来创建main.js入口文件,内容如下:
// main.js
const { app, BrowserWindow } = require('electron')
const path = require('path')const createWindow = () => {const mainWindow = new BrowserWindow({width: 800,height: 600,webPreferences: {preload: path.join(__dirname, 'preload.js')}})// 加载 index.htmlmainWindow.loadFile('index.html')
}// 部分 API 在 ready 事件触发后才能使用。
app.whenReady().then(() => {createWindow()app.on('activate', () => {if (BrowserWindow.getAllWindows().length === 0) createWindow()})
})// 当所有窗口都被关闭的时候退出程序
app.on('window-all-closed', () => {if (process.platform !== 'darwin') app.quit()
})
现在我们再来执行npm start
启动项目,就会弹出一个如下图的窗口:
至此,说明我们的代码没有问题。
三、打包项目
1、修改package.json
文件,在scripts
里添加如下内容:
注:json文件不能有注释,请自己把后面的注释去除
"pack": "electron-builder --dir",// 暂时不知道用途,官方的配置
"postinstall": "electron-builder install-app-deps",// 编译命令
"build": "electron-builder",// 打包当前平台命令
"build-win": "electron-builder --win --ia32",// 打包windows 32位应用命令
"build-win64": "electron-builder --win --x64",// 打包windows 64位应用命令
"build-mac": "electron-builder --mac",//打包mac平台应用命令
"build-linux": "electron-builder --linux"// 打包Linux平台应用命令
完整的内容应为下图:
2、执行npm run postinstall
编译项目:
3、再执行npm run build
打包(这里以当前平台为例)。
没有报错,说明我们打包成功。然后就发现多了一个dist文件夹,打开进去就是我们安装包的位置:
免安装目录:不用安装,进去后直接双击里面的
.exe
文件就可以直接打开;
安装包:需要安装,直接双击就能正常安装。
到这里,我们就可以自己打包一个桌面应用程序了。
四、打包报错处理
1、要是我们运行npm run build
打包时出现winCodeSign、nsis、nsis-resources文件下载不了的错误,这时我们就需要手动下载。
复制dowonloading后面的下载地址到GitHub文件加速网站(https://shrill-pond-3e81.hunsh.workers.dev/)下载相应的文件,把下载好的文件解压放到下列对应的文件夹中:
用户名为自己电脑的用户名(例如:C:\Users\Hello\AppData\Local\electron-builder\Cache);
版本号为npm run build
时下载地址中的版本号;
要是这个目录下没有\electron-builder\Cache\
这个地址,则需要自己创建;
上面这图是成功打包的图,实际操作需要一步一步buid
再下载文件
。
winCodeSign:C:\Users\用户名\AppData\Local\electron-builder\Cache\winCodeSign\winCodeSign-版本号
nsis:C:\Users\用户名\AppData\Local\electron-builder\Cache\nsis\nsis-版本号
nsis-resources:C:\Users\用户名\AppData\Local\electron-builder\Cache\nsis\nsis-resources-版本号
当所有包都下载好后重新npm run build
就可以了。
至此完结。
参考文档:
Electron中文网
Electron打包(windows平台)
Electron打包桌面应用程序相关推荐
- Vue-Cli4.x项目通过electron打包桌面应用程序
发现网上的教程大部分都是vue2.x目录结构不太一样 还有就是将一些问题整合在一起 傻瓜式教程 步骤一 下载electron的demo项目 electorn GitHub 下载demo electro ...
- C#—使用InstallerProjects打包桌面应用程序
前言 打包桌面应用程序实在是一个不常使用的东西,偶尔使用起来经常会忘东忘西的耽误时间,因此,这篇文章多以图片记录过程,也是用于备忘. 下载打包工具 C#打包桌面应用程序有很多种方法,这里介绍一种使用M ...
- 使用 Electron 构建桌面应用程序的介绍
事实上的团队协作软件,Visual Studio Code - 在撰写本文时市场上最受欢迎的代码编辑器之一,以及WhatsApp的桌面版本都有一个共同点:它们都是用Electron构建的.js.随着这 ...
- electron打包生成exe程序
一.步骤 1.package.json中添加配置如下: "scripts": {"package":"electron-packager . demo ...
- 解决electron打包成应用程序问题总结(详细)
一.打包流程 1.定位到当前项目目录下,输入命令: npm install --save-dev electron-packager 将electron-package包安装到在项目下面, 在pack ...
- mac nw.js 打包桌面应用程序
参考https://segmentfault.com/a/1190000007564694和https://zhuanlan.zhihu.com/p/20070166 1.mac电脑下打包,需要先下载 ...
- chromium 桌面_如何使用Chromium和PyInstaller将Web应用程序转换为桌面应用程序
chromium 桌面 Packaging and distributing your app sounds simple in principle. It's just software. But ...
- 为Electron 打包后的桌面程序添加自定义向导
Electron打包 简介 内容 创建package.json 下载打包依赖 添加打包配置----在srcripts下面添加build(此处添加自定义安装向导向导) 配置信息说明 Boolean St ...
- 【Electron】使用Electron将web项目打包成桌面应用程序
目录 一.所需环境&打包前准备 1.安装node.js 2.安装electron 3.web项目 二.打包过程 1.打包配置 2. 安装打包器 3.执行打包命令: Electron是由GitH ...
- 用HTML和CSS和JS构建跨平台桌面应用程序的开源库Electron的介绍以及搭建HelloWorld
场景 Electron介绍 Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库. Electron通过将Chromium和Node.js ...
最新文章
- 阿里云服务器ECS配置LNMP
- android文件的读取方法,Android读取写入文件的方法
- 养成一个新习惯,只需要这个大脑区域兴奋0.5秒
- 有关SAP中的批次管理
- android程序名称,Android应用程序名称带上标
- 浙大慕课c语言答案,程序设计入门——C语言
- IDEA 创建maven jar、war、 pom项目
- svn导出项目到myeclipse,运行报ClassNotFoundException
- jq中html(),text(),val()以及js中innerHTML,innerText和value
- Markdown中跳转,锚点操作浅析
- Android中关于Volley的使用(二)加载Json数据
- double类型的精度问题【计算时有误差】。 (0.1 * 0.1 , 1.0 - 0.9)
- Oracle在线撤销表空间,Oracle创建、管理撤销表空间
- js input输入框去空格
- Android常用布局-01
- 软碟通 (UltraISO)制作启动盘
- 20180710-B · Craft Beer USA · ggplot2 geom_density_ridges_gradient 核密度估计峰峦图 字体设置 · R 语言数据可视化 案例 源码
- Python实战1-9例:变量、运算、字符串等综合训练
- Python E化-英文资料自动翻译
- Halcon图像读取的方式