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

electron TodoList网页应用打包成linux deb、AppImage应用

这里用的是windows的wsl的ubuntu环境
在这里插入图片描述electron应用打包linux应用需要linux下打包,这里用windows的wsl的ubuntu环境进行操作

1)linux ubuntu安装nodejs、electron

安装nodejs:

sudo apt update
sudo apt upgrade
##快捷安装
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

安装完验证
在这里插入图片描述

安装electron:

##安装cnpm
sudo npm install -g cnpm --registry=https://registry.npmmirror.com
cnpm install --save-dev electron
cnpm install electron-builder --save-dev

在这里插入图片描述

2、electron打包linux应用

参考:
TodoList网页:https://cnloong.blog.csdn.net/article/details/140648621

TodoList打包文件夹内容基本都是上面和windows打包exe一样,只更改了package.json文件
在这里插入图片描述

新package.json内容:
linux下需要author、homepage、maintainer参数,不然会报错

{"name": "todolist-app","version": "1.0.0","main": "main.js","homepage": "https://example.com","author": {"name": "Your Name","email": "your.email@example.com"},"build": {"appId": "com.yourcompany.todolist","mac": {"category": "public.app-category.productivity"},"win": {"icon": "icons/icon.png","target": ["nsis"]},"linux": {"target": ["AppImage","deb"],"category": "Utility","maintainer": "Your Name <your.email@example.com>"} },"scripts": {"start": "electron .","build": "electron-builder --linux"},"keywords": [],"license": "ISC","description": "","devDependencies": {"electron": "^31.2.1","electron-builder": "^24.13.3"},"dependencies": {}
}

打包过程:
1)在windows的wsl的ubuntu环境进入对应windows目录TodoList下
一般/mnt下就是映射的windows的目录

在这里插入图片描述
在这里插入图片描述
2)build

npm run build

在这里插入图片描述
3)打包完成
在dist文件夹下可以看到linux平台的deb、AppImage安装包
在这里插入图片描述
dist\linux-unpacked 下是免安装包
在这里插入图片描述

ubuntu桌面查看

直接cmd进入linux-unpacked 目录下执行

./todolist-app --no-sandbox

如果不加–no-sandbox会报错
在这里插入图片描述

在这里插入图片描述
TodoList 运行效果

在这里插入图片描述

相关文章:

electron TodoList网页应用打包成linux deb、AppImage应用

这里用的是windows的wsl的ubuntu环境 electron应用打包linux应用需要linux下打包&#xff0c;这里用windows的wsl的ubuntu环境进行操作 1&#xff09;linux ubuntu安装nodejs、electron 安装nodejs&#xff1a; sudo apt update sudo apt upgrade ##快捷安装 curl -fsSL http…...

【C语言】 使用fgets和fputs完成两个文件的拷贝

目录 1、使用fgets和fputs完成两个文件的拷贝 2、使用fgets统计给定文件的行号 fgets和fputs的使用方法函数原型&#xff1a;int fputs&#xff08;const char *s,FILE *stream)&#xff1b; char *fgets(char *s,int size,FILE *stream)&#xff1b;fupts…...

使用PyTorch导出JIT模型:C++ API与libtorch实战

PyTorch导出JIT模型并用C API libtorch调用 本文将介绍如何将一个 PyTorch 模型导出为 JIT 模型并用 PyTorch 的 CAPI libtorch运行这个模型。 Step1&#xff1a;导出模型 首先我们进行第一步&#xff0c;用 Python API 来导出模型&#xff0c;由于本文的重点是在后面的部署…...

Python——异常捕获,传递及其抛出操作

01. 异常的概念 1. 程序在运行时&#xff0c;如果 python解释器遇到一个错误&#xff0c;会停止程序的执行&#xff0c;并且提示一些错误信息&#xff0c;这就是异常。 2. 程序停止执行并且提示错误信息这个动作&#xff0c;我们通常称之为&#xff1a;抛出&#xff08;raise…...

【Maven】 的继承机制

Maven是一个强大的项目管理工具&#xff0c;主要用于Java项目的构建和管理。它以其项目对象模型&#xff08;POM&#xff09;为基础&#xff0c;允许开发者定义项目的依赖、构建过程和插件。Maven的继承机制是其核心特性之一&#xff0c;它允许子项目继承和复用父项目的配置&am…...

微信小程序结合后端php发送模版消息

前端&#xff1a; <view class"container"><button bindtap"requestSubscribeMessage">订阅消息</button> </view> // index.js Page({data: {tmplIds: [UTgCUfsjHVESf5FjOzls0I9i_FVS1N620G2VQCg1LZ0] // 使用你的模板ID},requ…...

sqlalchemy报错sqlalchemy.orm.exc.DetachedInstanceError

解决方案&#xff1a; 在初始化数据库的代码中&#xff0c;将 maker sessionmaker(bindeng)修改为 maker sessionmaker(bindeng, expire_on_commitFalse)为什么要添加 expire_on_commitFalse 参数&#xff1f; expire_on_commit 可以用来更改 SQLAlchemy 的对象刷新机制&…...

华为网络模拟器eNSP安装部署教程

eNSP是图形化网络仿真平台&#xff0c;该平台通过对真实网络设备的仿真模拟&#xff0c;帮助广大ICT从业者和客户快速熟悉华为数通系列产品&#xff0c;了解并掌握相关产品的操作和配置、提升对企业ICT网络的规划、建设、运维能力&#xff0c;从而帮助企业构建更高效&#xff0…...

【React】详解样式控制:从基础到进阶应用的全面指南

文章目录 一、内联样式1. 什么是内联样式&#xff1f;2. 内联样式的定义3. 基本示例4. 动态内联样式 二、CSS模块1. 什么是CSS模块&#xff1f;2. CSS模块的定义3. 基本示例4. 动态应用样式 三、CSS-in-JS1. 什么是CSS-in-JS&#xff1f;2. styled-components的定义3. 基本示例…...

【ROS2】高级:安全-理解安全密钥库

目标&#xff1a;探索位于 ROS 2 安全密钥库中的文件。 教程级别&#xff1a;高级 时间&#xff1a;15 分钟 内容 背景安全工件位置 公钥材料 私钥材料域治理政策 安全飞地 参加测验&#xff01; 背景 在继续之前&#xff0c;请确保您已完成设置安全教程。 sros2 包可以用来创…...

C语言 ——— 数组指针的定义 数组指针的使用

目录 前言 数组指针的定义 数组指针的使用 前言 之前有编写过关于 指针数组 的相关知识 C语言 ——— 指针数组 & 指针数组模拟二维整型数组-CSDN博客 指针数组 顾名思义就是 存放指针的数组 那什么是数组指针呢&#xff1f; 数组指针的定义 何为数组指针&#xf…...

opencascade AIS_ManipulatorOwner AIS_MediaPlayer源码学习

前言 AIS_ManipulatorOwner是OpenCascade中的一个类&#xff0c;主要用于操纵对象的交互控制。AIS_ManipulatorOwner结合AIS_Manipulator类&#xff0c;允许用户通过可视化工具&#xff08;如旋转、平移、缩放等&#xff09;来操纵几何对象。 以下是AIS_ManipulatorOwner的基…...

如何防止用户通过打印功能复制页面文字

简单防白嫖&#xff0c;要让打印出来的页面是空白&#xff0c;通常的做法是在打印时隐藏页面上的所有内容。这可以通过CSS的媒体查询&#xff08;Media Queries&#xff09;来实现&#xff0c;特别是针对media print的查询。 在JavaScript中&#xff0c;你通常不会直接控制打印…...

Python3网络爬虫开发实战(3)网页数据的解析提取

文章目录 一、XPath1. 选取节点2. 查找某个特定的节点或者包含某个指定的值的节点3. XPath 运算符4. 节点轴5. 利用 lxml 使用 XPath 二、CSS三、Beautiful Soup1. 信息提取2. 嵌套选择3. 关联选择4. 方法选择器5. css 选择器 四、PyQuery1. 初始化2. css 选择器3. 信息提取4. …...

基于 HTML+ECharts 实现监控平台数据可视化大屏(含源码)

构建监控平台数据可视化大屏&#xff1a;基于 HTML 和 ECharts 的实现 监控平台的数据可视化对于实时掌握系统状态、快速响应问题至关重要。通过直观的数据展示&#xff0c;运维团队可以迅速发现异常&#xff0c;优化资源配置。本文将详细介绍如何利用 HTML 和 ECharts 实现一个…...

立创梁山派--移植开源的SFUD和FATFS实现SPI-FLASH文件系统

本文主要是在sfud的基础上进行fatfs文件系统的移植&#xff0c;并不对sfud的移植再进行过多的讲解了哦&#xff0c;所以如果想了解sfud的移植过程&#xff0c;请参考我的另外一篇文章&#xff1a;传送门 正文开始咯 首先我们需要先准备资料准备好&#xff0c;这里对于fatfs的…...

MySQL之视图和索引实战

1.新建数据库 mysql> create database myudb5_indexstu; Query OK, 1 row affected (0.01 sec) mysql> use myudb5_indexstu; Database changed 2.新建表 1.学生表student&#xff0c;定义主键&#xff0c;姓名不能重名&#xff0c;性别只能输入男或女&#xff0c;所在…...

快速参考:用C# Selenium实现浏览器窗口缩放的步骤

背景介绍 在现代网络环境中&#xff0c;浏览器自动化已成为数据抓取和测试的重要工具。Selenium作为一个强大的浏览器自动化工具&#xff0c;能够与多种编程语言结合使用&#xff0c;其中C#是非常受欢迎的选择之一。在实际应用中&#xff0c;我们常常需要调整浏览器窗口的缩放…...

MyBatis 插件机制、分页插件如何实现的

MyBatis 插件机制允许开发者在 SQL 执行的各个阶段&#xff08;如预处理、执行、结果处理等&#xff09;中插入自定义逻辑&#xff0c;从而实现对 MyBatis 行为的扩展和增强。以下是 MyBatis 插件运行原理的详细介绍&#xff1a; 插件接口 MyBatis 插件通过实现 org.apache.i…...

CentOS6.0安装telnet-server启用telnet服务

CentOS6.0安装telnet-server启用telnet服务 一步到位 fp"/etc/yum.repos.d" ; cp -a ${fp} ${fp}.$(date %0y%0m%0d%0H%0M%0S).bkup echo [base] nameCentOS-$releasever - Base baseurlhttp://mirrors.163.com/centos-vault/6.0/os/$basearch/http://mirrors.a…...

Ollama客户端开发指南:构建本地大模型交互工具的核心原理与实践

1. 项目概述&#xff1a;一个与Ollama对话的客户端工具如果你正在本地运行像Llama 3、Mistral或者Qwen这类开源大语言模型&#xff0c;那么Ollama这个名字对你来说一定不陌生。它让部署和管理这些模型变得像在命令行里敲几个单词一样简单。但Ollama本身主要是一个服务端工具&am…...

别再踩坑了!emWin6.x窗口管理器定时器WM_CreateTimer的正确打开方式(附RTOS/裸机源码)

深度解析emWin6.x窗口管理器定时器的实战避坑指南 在嵌入式GUI开发中&#xff0c;emWin的窗口管理器定时器功能是构建动态交互界面的核心工具之一。许多开发者在初次接触WM_CreateTimer时&#xff0c;往往会被看似简单的API背后隐藏的细节所困扰——为什么定时器没有触发&#…...

原神玩家信息查询完整指南:如何快速掌握账号详情

原神玩家信息查询完整指南&#xff1a;如何快速掌握账号详情 【免费下载链接】GenshinPlayerQuery 根据原神uid查询玩家信息(基础数据、角色&装备、深境螺旋战绩等) 项目地址: https://gitcode.com/gh_mirrors/ge/GenshinPlayerQuery 还在为无法全面了解自己的原神账…...

如何在不同终端里面使用claude code并使用不同模型

在使用 Claude Code 开发项目时&#xff0c;我们可能会遇到这样的需求&#xff1a;一个终端使用速度更快、成本更低的模型处理日常代码修改&#xff0c;另一个终端使用推理能力更强的模型处理复杂问题。比如&#xff1a;一个终端用 deepseek-v4-pro[1m]&#xff0c;另一个终端用…...

5分钟掌握OBS虚拟摄像头:让所有视频软件都能用上专业直播效果

5分钟掌握OBS虚拟摄像头&#xff1a;让所有视频软件都能用上专业直播效果 【免费下载链接】obs-virtual-cam 项目地址: https://gitcode.com/gh_mirrors/obs/obs-virtual-cam 你是否曾经羡慕主播们精美的直播画面&#xff0c;却苦于无法在Zoom、Teams等日常软件中实现同…...

MoviePilot连接TMDB异常的终极诊断指南:5步快速排查与完整解决方案

MoviePilot连接TMDB异常的终极诊断指南&#xff1a;5步快速排查与完整解决方案 【免费下载链接】MoviePilot NAS媒体库自动化管理工具 项目地址: https://gitcode.com/gh_mirrors/mo/MoviePilot MoviePilot作为NAS媒体库自动化管理工具&#xff0c;其核心功能依赖TheMov…...

Godot集成CEF:用Web技术构建高性能跨平台桌面应用

1. 项目概述&#xff1a;一个被低估的桌面应用开发利器 如果你正在寻找一个能让你用熟悉的Web技术&#xff08;HTML、CSS、JavaScript&#xff09;来构建高性能、跨平台桌面应用的工具&#xff0c;并且对Electron的臃肿和资源占用感到头疼&#xff0c;那么你很可能已经听说过C…...

Godot引擎集成Wwise音频中间件:从原理到实战的完整指南

1. 项目概述&#xff1a;当AAA级音频引擎遇见开源游戏引擎如果你是一位使用Godot引擎的游戏开发者&#xff0c;并且对游戏音频的品质有追求&#xff0c;那么你很可能听说过Wwise。Wwise&#xff0c;全称Audiokinetic Wwise&#xff0c;是游戏音频领域的行业标准&#xff0c;从《…...

Tmux智能代理:用Emoji可视化终端状态,提升开发效率与情境感知

1. 项目概述&#xff1a;一个让终端会话“活”起来的智能代理 如果你和我一样&#xff0c;每天有超过8小时的时间“泡”在终端里&#xff0c;与tmux、vim和各种命令行工具打交道&#xff0c;那你一定理解那种感觉——屏幕上是冰冷的文本、闪烁的光标和单调的日志输出。长时间面…...

Go语言建造者模式:复杂对象构建

Go语言建造者模式&#xff1a;复杂对象构建 1. 建造者实现 type User struct {Name stringAge intEmail stringPhone stringAddress string }type UserBuilder struct {user *User }func NewUserBuilder() *UserBuilder {return &UserBuilder{user: &User{}…...