nodegui搭建/你好/打包

news2024/11/27 0:29:24

0、github连接问题

警告:如果你的网络有任何有任何有任何有任何有任何有任何有任何有任何有任何有任何连接 github 的问题,彻底放弃该框架
请转到其他框架
electron-egg教程、electron-egg官网,或其他electron项目
Tauri教程、Tauri官网
NW.js、NWjs中文网
Gluon.js、Gluon官网
Neutralinojs、Neutralinojs官网
ultralight、Ultralight官网

1、官网

nodegui官网、nodegui的Github
其他版本:Vue NodeGUI、React NodeGUI、Svelte NodeGUI

2、安装git

阿里镜像、GitClone、git官网
可能的文件名:Git-2.40.0-64-bit.exe

3、安装CMake

CMake官网、腾讯软件,用IDM、Motrix等下载软件加速下载
可能的文件名:cmake-3.26.0-windows-x86_64.msi
安装时选择Add CMake to the system PATH for all users

4、安装Microsoft C++ 生成工具

访问微软官网下载生成工具,勾选使用 C++ 的桌面开发之后会自动勾选5个项目
取消勾选以下项目
用于 Windows 的 C++ CMake 工具
测试工具核心功能 - 生成工具
C++ AddressSanitizer
只保留以下两个(SDK版本不用管,Win10或Win11都行,勾什么就留什么,不用自己勾)
MSVC v143 - VS 2022 C++ x64/x86 生成工具
Windows 11 SDK (10.0.22000.0)

5、VSCode

安装VSCode
本文需要用到的插件:Live Server

6、安装nvm

访问下载地址下载安装nvm:
百度云分享
官网直装链接
nvm的github发行界面下载nvm-setup.exe
GitCode镜像下载nvm-setup.exe(登录获取下载链接,下载链接还是Github的,唯一的作用就是挑选版本的时候快点)

7、配置nvm

nvm install lts安装最新版本的Node.js,本文安装的是18.16.0
nvm install lts启用这个版本
运行cmd /c "nvm -v && node -v && npm -v",正常输出版本号说明安装完成

8、下载nodegui-binary备用

https://github.com/nodegui/nodegui/releases/download/v0.57.1/nodegui-binary-v0.57.1-win32-x64.tar.gz

打开路径%localappdata%
手动创建缓存文件夹%LocalAppData%\nodegui-core-nodejs\Cache
将nodegui-binary压缩文件复制一份放入Cache文件夹

9、克隆nodegui-starter项目

运行git clone https://github.com/nodegui/nodegui-starter
或者运行git clone https://gitclone.com/github.com/nodegui/nodegui-starter

10、进入项目

cd .\nodegui-starter\

12、安装依赖

运行
cmd /c "set QODE_MIRROR=https://hub.gitmirror.com/https://github.com/nodegui/qodejs/releases/download/v16.4.3-qode/v16.4.3-qode-win32-x64.tar.gz&& set QT_LINK_MIRROR=https://mirrors.sjtug.sjtu.edu.cn/qt&& npm install"

13、安装报错

unable to verify the first certificate
尝试npm config set strict-ssl=false
安装完毕后恢复为true:npm config set strict-ssl=true

13、启动

npm start

14、启动报错

无法启动,提示如下报错

node:internal/modules/cjs/loader:1154
  return process.dlopen(module, path.toNamespacedPath(filename));
                 ^

Error: The specified module could not be found.

进入该路径:node_modules/@nodegui/nodegui
运行:npm run build:addon

15、启动成功

在这里插入图片描述

16、准备一张png图片

请添加图片描述
命名为winlogox200.png,放置在以下路径nodegui-starter\assets\winlogox200.png

17、软件窗口图标任务栏图标

在文件中nodegui-starter\src\index.ts搜索QMainWindow
例如

const win = new QMainWindow();
win.setWindowTitle("Hello World");

将其改为

const win = new QMainWindow();
win.setWindowTitle("Hello World");
import winlogo from '../assets/winlogox200.png';
win.setWindowIcon(new QIcon(winlogo));


npm start,窗口图标任务栏图标修改成功
在这里插入图片描述

18、打包预备

npx nodegui-packer --init HelloWorld
这个命令只需要运行一次
将会出现路径nodegui-starter\deploy\win32\HelloWorld

19、打包

npx nodegui-packer --pack ./dist
打包结果,免安装程序文件夹:nodegui-starter\deploy\win32\build\HelloWorld

20、运行

nodegui-starter\deploy\win32\build\HelloWorld\qode.exe
在这里插入图片描述

21、exe文件修改图标

21.1 转换为ico格式

访问greenfish官网下载greenfish icon editor pro
打开greenfish icon editor pro,F11修改语言为中文
使用greenfish icon editor pro打开图片nodegui-starter\assets\winlogox200.png
菜单栏,图像,从图像创建 Windows 图标…(Ctrl+Shift+I)
弹出尺寸选择窗口
默认不修改直接点击确定(或者也可以参考原exe资源,256×256/128×128/64×64/48×48/32×32/24×24/16×16)
Ctrl+S保存,保存类型设置为图标文件 (*.ico)
文件名必须为1,即生成文件为1.ico

21.2 resourcehacker

访问resourcehacker官网下载resourcehacker
打开resourcehacker,将nodegui-starter\deploy\win32\build\HelloWorld\qode.exe拖拽到resourcehacker窗口中
菜单栏 Action Add an Image or Other BinaryResource…(Ctrl+M)打开添加图标对话框
点击Add Binary or Image Resource也是一样的
在这里插入图片描述
点击Select File…选择1.ico,点击Add Resource,提示WARNING,点击Delete删除原图标,替换新图标
在这里插入图片描述
替换后Ctrl+S保存
碍于Windows图标缓存机制,仔细辨别图标是否替换成功
(新建一个Windows系统没见过的文件夹名(!这很重要,为了让缓存失效),将exe放进去,查看图标是否修改成功)
确认修改成功,则删除resourcehacker生成的备份文件qode_original.exe

22、打包为安装包

Actual Installer Free打包

缓存文件分析

脚本文件:
nodegui-starter\node_modules@nodegui\nodegui\scripts\setupBinary.js
硬编码:
const SETUP_DIR = path.resolve(__dirname, ‘…’, ‘build’, ‘Release’);
const packageVersion = packageJson.version;
const tarballName = nodegui-binary-v${packageVersion}-${os.platform()}-${os.arch()}.tar.gz;
const url = https://github.com/nodegui/nodegui/releases/download/v${packageVersion}/${tarballName};
await setupArtifact({
outDir: SETUP_DIR,
id: ‘nodegui-core’,
displayName: Precompiled NodeGui binary,
downloadLink: url,
skipSetup: () => false,
});
下载地址:
https://hub.gitmirror.com/https://github.com/nodegui/nodegui/releases/download/v0.57.1/nodegui-binary-v0.57.1-win32-x64.tar.gz
缓存位置:
%LocalAppData%\nodegui-core-nodejs\Cache
nodegui-binary-v0.57.1-win32-x64.tar.gz
解决方案:
无解,应聘微软总部的保安连连微软的WIFI吧

脚本文件:
nodegui-starter\node_modules@nodegui\qode\src\config.js
nodegui-starter\node_modules@nodegui\qode\src\setup.js
环境变量||硬编码:(该环境变量为直接下载式链接)
const appPaths = envPaths(‘qode’); //qode?不是qode-nodejs?
const downloadLink = process.env.QODE_MIRROR || https://github.com/nodegui/qodejs/releases/download/${gitTagVersion}/${downloadArchiveName};
module.exports = {
downloadLink,
libVersion,
extractDir,
cacheDir: appPaths.cache,
qodePath,
};
const archivePath = path.resolve(cacheDir, path.basename(downloadLink));
下载地址:
https://github.com/nodegui/qodejs/releases/download/v16.4.3-qode/v16.4.3-qode-win32-x64.tar.gz
缓存位置
%LocalAppData%\qode-nodejs\Cache
v16.4.3-qode-win32-x64.tar.gz
解决方案:
QODE_MIRROR=https://hub.gitmirror.com/https://github.com/nodegui/qodejs/releases/download/v16.4.3-qode/v16.4.3-qode-win32-x64.tar.gz

脚本文件:
nodegui-starter\node_modules@nodegui\nodegui\config\qtConfig.js
nodegui-starter\node_modules@nodegui\nodegui\scripts\setupMiniQt.js
环境变量||硬编码:(该环境变量为拼接式链接。该环境变量对macOS无效?)
const MIRROR = Boolean(process.env.QT_LINK_MIRROR) ? process.env.QT_LINK_MIRROR : ‘https://download.qt.io’;
const QT_VERSION = ‘5.15.2’;
const SETUP_DIR = path.resolve(__dirname, ‘…’, ‘miniqt’);
const qtHome = path.resolve(SETUP_DIR, QT_VERSION, ‘msvc2019_64’);

link: ${MIRROR}/online/qtsdkrepository/windows_x86/desktop/qt5_5152/qt.qt5.5152.win64_msvc2019_64/5.15.2-0-202011130602qtbase-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86_64.7z,
skipSetup: checkIfExists(path.resolve(qtHome, ‘bin’, ‘Qt5Core.dll’)),
下载地址:
https://s3.jcloud.sjtu.edu.cn/899a892efef34b1b944a19981040f55b-oss01/rsync/qt/56403c4efaedfcf67c2ebc981f4aa9ad2620225b
镜像列表参考:
https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5152/qt.qt5.5152.win64_msvc2019_64/5.15.2-0-202011130602qtbase-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86_64.7z.mirrorlist
缓存位置:
%LocalAppData%\nodegui-mini-qt-nodejs\Cache
5.15.2-0-202011130602qtbase-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86_64.7z
5.15.2-0-202011130602qtsvg-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86_64.7z
5.15.2-0-202011130602qttools-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86_64.7z
解决方案:
QT_LINK_MIRROR=https://mirrors.sjtug.sjtu.edu.cn/qt



请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/423782.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Smartbi电子表格软件架构与差异化特色

选择和Excel结合Smartbi电子表格软件选择与Excel结合的原因在于,Excel一直被模仿,从未被超越。虽然市场上的报表软件很多,但存在太多的不完美。国外的产品功能复杂、难于学习(控件方式),做不了中国式复杂格…

SpringBoot使用Redis实现分布式缓存

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

Matlab群体智能优化算法之巨型睡莲优化算法(VAO)

Matlab群体智能优化算法之巨型睡莲优化算法(VAO) 摘要:介绍一种新型智能优化算法,巨型睡莲优化算法。其应用于24个基准测试函数,并与其他10个著名算法进行了比较。提出的算法在10个优化问题上进行了测试:最小生成树、枢纽位置分配…

技术复盘(4)--docker

技术复盘--docker资料地址环境初始docker安装dockerdocker常用命令-都需要先启动dockerdocker容器打包为镜像docker坑docker卸载docker数据卷dockerFile构建过程搭建私有仓库--非图形化界面搭建私有仓库--图形化界面docker理论知识资料地址 docker官网:https://www…

一种供水系统物联网监测系统

1.1供水系统 1.1.1监测范围选择依据 (1)管网老化区域管网 管网建设年代久远,通常管网发生破损问题较大,根据管网本身属性和历史发生事件的统计分析,结合数理统计,优先选择管网老化区域的管段所在区域进行…

基于imx8m plus开发板全体系开发教程4:Linux系统开发

前言: i.MX8M Plus 开发板是一款拥有 4 个 Cortex-A53 核心,运行频率 1.8GHz;1 个 Cortex-M7 核心,运行频率 800MHz;此外还集成了一个 2.3 TOPS 的 NPU,大大加速机器学习推理。 全文所使用的开发平台均为与NXP官方合作的FS-IMX8…

深入浅出Kafka

这个主题 武哥漫谈IT ,作者骆俊武 讲得更好 一、什么是Kafka? 首先我们得去官网看看是怎么介绍Kafka的: https://kafka.apache.org/intro Apache Kafka is an open-source distributed event streaming platform. 翻译成中文就是&#xff1…

Git分布式版本控制软件

1.什么是git git是分布式版本控制软件。 软件:git是从别的地方下载下来安装到我们电脑上的软件。 版本控制:跟毕业论文一样,先写好版本1然后交给导师,导师说不行,然后再改为版本2,然后循环下去&#xff0…

Su+ELK实现网络监测(2)——ELK安装与配置

ELK安装配置文档一、环境准备基础配置二、Jdk1.8环境部署1、安装jdk2、编辑环境变量三、ElasticSearch部署1、安装2、修改文件所有者3、修改配置文件4、启动四、elasticsearch-head部署(可不安装,跳过)1、nodejs安装2、head插件安装3、修改he…

智慧工厂可视化合集,推动行业数字化转型

图扑软件基于 HTML5(Canvas/WebGL/WebVR)标准的 Web 技术,满足了工业物联网跨平台云端化部署实施的需求,以低代码的形式自由构建三维数字孪生、大屏可视化、工业组态等等。从 SDK 组件库,到 2D 和 3D 编辑,…

软化水处理知识总结

软化水除了广泛应用在饮用、浴室、厨房、洗衣等生活用水,和酒店、学校、写字楼、公寓、餐饮等商业用水的处理,还可用于锅炉、交换器、蒸发冷凝器、空调、直燃机等系统的补给水的软化。 那什么是软化水,和除盐水、纯水有什么区别?…

大学物理第四单元:刚体

1.刚体的定轴转动 思考:改变转动状态的因素 答:改变刚体运动状态的的因素有力的大小及力臂有关,力与力臂的乘积为力矩。 力臂:力到转轴的距离 简而言之,改变刚体运动状态的因素是力矩,与力和力臂有关。 …

谷粒学院项目笔记第一部分

1.环境搭建&#xff0c;准备工作 &#xff08;1&#xff09;创建数据库 &#xff08;2&#xff09;创建项目完整结构 &#xff08;3&#xff09;父工程springboot,子工程maven &#xff08;4&#xff09;父工程pom设置版本&#xff0c;添加pom #版本 <version>2.2.1.R…

11个AI写作软件工具!知名4A广告公司蓝标宣布停止文案外包!

AI的这场熊熊大火&#xff0c;终于还是烧到了广告界&#xff01; 2023年4月12日&#xff0c;是一个再普通不过的日子&#xff0c;但这一天会被很多人记住。不是因为席卷整个华北区的漫天黄沙&#xff0c;而是因为一封代表着AI势不可挡的决心和象征着一个行业巨变拉开序幕的邮件…

学会 制作极简搜索浏览器 —— 并将 ChatGPT 接入浏览器

前期回顾 Vue3 Ts Vite pnpm 项目中集成 —— eslint 、prettier、stylelint、husky、commitizen_0.活在风浪里的博客-CSDN博客搭建VIte Ts Vue3项目并集成eslint 、prettier、stylelint、huskyhttps://blog.csdn.net/m0_57904695/article/details/129950163?spm1001.2…

采用D-K迭代设计不确定对象的鲁棒控制器(μ-controllers)

采用D-K迭代设计不确定对象的鲁棒控制器&#xff0c;将H∞综合(K步)与μ分析(D步)相结合&#xff0c;优化闭环鲁棒性能。 Step 1&#xff1a;利用H∞综合方法找到使标称系统闭环增益最小的控制器。 Step 2&#xff1a;进行鲁棒性分析&#xff0c;以估计闭环系统的鲁棒H∞性能。…

手把手kubernetes本地化部署(含疑难杂症排查解析)

文章目录一、什么是Kubernetes&#xff1f;二、Kubernetes的基本概念PodDeploymentServiceNamespaceConfigMapSecret三、Kuberntes单机本地部署3.1、安装minikube命令行工具3.2、安装docker3.3、启动minikube3.4、使用Dashboard3.5、异常问题解决3.5.1、提示Docker失败3.5.2、d…

迅为瑞芯微RK3568国产化实时操作系统,大容量内存

基于瑞芯微四核 64 位 Cortex-A55 ARMv8 架构处理器 RK3568&#xff0c;主频可达 2.0GHz&#xff0c;CPU 采用 22nm 制程工艺&#xff0c;动态调频调压技术&#xff0c;进一步放大能效比优势。 大容量内存 最大容量支持 8GB 内存&#xff0c;能够有效发挥处理器性能&#xff0…

服装标签二维码,要如何制作?含品牌案例

睡衣上的二维码标签、大衣的洗护说明二维码、衣服上的防伪二维码… 服装行业应用二维码&#xff0c;已经非常常见了。 服装行业中的二维码&#xff0c;不仅帮助品牌更好地展示产品信息、传播品牌影响力&#xff0c;更重要的是&#xff0c;通过这些服装二维码&#xff0c;直接优…

Attention is all your need——Transformer论文

摘要 此序列转录模型仅仅依赖于注意力机制&#xff0c;而不使用循环或者是卷积&#xff0c;将循环全部换成了multi-headed self- attention 介绍 RNN的特点、并行程度低。 Attention在RNN上的应用。 引入注意力机制&#xff0c;提高并行度。 背景 使用卷积对长的序列难以…