Electron入门项目及打包

2024-06-20 08:20
文章标签 入门 项目 打包 electron

本文主要是介绍Electron入门项目及打包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Electron入门项目及打包

环境:

electron: v30.1.1 (2024-06-13)
nodejs: v20.12.2

文章目录

  • Electron入门项目及打包
    • 1. 初始化 npm 项目
    • 2. 安装 electron
    • 3. 编写electron程序
    • 4. 运行
    • 5. 打包
      • 5.1 electron-builder打包
      • 5.2 手动打包
      • 5.3 不打包直接运行

1. 初始化 npm 项目

mkdir my-electron-app && cd my-electron-app
npm init

2. 安装 electron

npm install -g cnpm --registry=https://registry.npmmirror.com
cnpm install electron --save-dev

3. 编写electron程序

  • index.js
const { app, BrowserWindow } = require('electron/main')const createWindow = () => {const win = new BrowserWindow({width: 800,height: 600})win.loadFile('index.html')
}app.whenReady().then(() => {createWindow()
})
  • index.html
<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>Hello from Electron renderer!</title>
</head><body><h1>Hello from Electron renderer!</h1>
</body></html>
  • package.json
{"name": "electrontest","version": "1.0.0","description": "","main": "index.js","scripts": {"start": "electron .","test": "echo \"Error: no test specified\" && exit 1"},"author": "","license": "ISC","devDependencies": {"electron": "^30.1.1"}
}

4. 运行

npm run start

5. 打包

5.1 electron-builder打包

  • 安装electron-builder

    cnpm install electron-builder --save-dev

  • 修改package.json

{"name": "electrontest","version": "1.0.0","description": "","main": "index.js","scripts": {"start": "electron .","build": "electron-builder","test": "echo \"Error: no test specified\" && exit 1"},"author": "","license": "ISC","devDependencies": {"electron": "^30.1.1","electron-builder": "^24.13.3"}
}
  • 打包
npm run build
  • 运行
cd dist/win-unpacked
electrontest.exe

5.2 手动打包

  • 安装asar
npm install -g asar
asar -V
v3.2.0
  • 打包源码到app.asar

新建pack文件夹,将index.js index.html package.json拷贝到pack文件

mkdir pack
asar ./ app.asar
  • 将app.asar放到electron目录的resources文件夹中

  • 运行

electron

5.3 不打包直接运行

v30.1.1 运行文件优先级:

 app.asar > app文件夹 > default_app.asar

By default Electron will search in the following order app.asar -> app -> default_app.asar

electron\shell\common\node_bindings.cc

const std::vector<std::string> search_paths = {"app.asar", "app","default_app.asar"};

因此,直接将index.js index.html package.json拷贝electron目录的resources文件夹中即可直接运行。

目录结构如下

$ tree
.
+--- chrome_100_percent.pak
+--- chrome_200_percent.pak
+--- d3dcompiler_47.dll
+--- electron.exe
+--- ffmpeg.dll
+--- icudtl.dat
+--- libEGL.dll
+--- libGLESv2.dll
+--- LICENSE
+--- LICENSES.chromium.html
+--- locales
+--- resources
|   +--- app
|   |   +--- index.html
|   |   +--- index.js
|   |   +--- package.json
+--- resources.pak
+--- snapshot_blob.bin
+--- v8_context_snapshot.bin
+--- version
+--- vk_swiftshader.dll
+--- vk_swiftshader_icd.json
+--- vulkan-1.dll

这篇关于Electron入门项目及打包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1077600

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin