Closed liudonghua123 closed 1 year ago
这个相比 tauri 打包(一般需要花费很长时间)的可执行程序来说,运行有没有损失,损失多少,有其他什么利弊么?
一个 Niva 可执行文件有两个部分组成:
Niva 主程序在编译发布以后就一直不变了,我们使用的 NivaDevtools.exe 其实就相当于 Niva 主程序 + Niva Devtools 代码和资源。而 NivaDevtools.exe 构建其他应用的过程,就是吧 NivaDevtools.exe 自己本身复制了一遍然后把 NivaDevtools.exe 的资源文件替换成目标应用的资源文件即可。
这个构建方式是利用了 Windows 的可执行文件可以嵌入 Resource 实现的https://learn.microsoft.com/en-us/windows/win32/menurc/enumerating-resources。
Niva 只对资源文件进行构建和替换,Niva 主程序不需要重新构建。而 Tauri 是从 rust 源码开始构建的,所以实际上完全不是一回事没办法进行比较。
嗯嗯,谢谢您细致的详解 👍
你好,我体验了一下这个小工具,确实很方便,所有就好奇看了一下构建生成可执行程序部分的代码,这个似乎是使用隐藏在 NivaDevtools.exe 里的 ResourceHacker.exe 对 NivaDevtools.exe + 一些压缩的资源进行打包的么?这个打包过程中会删除 NivaDevtools.exe 中不用的东西,减少体积是么? 我对 ResourceHacker.exe 没怎么了解过,只是用其来对 exe 设置图标用过。
https://github.com/bramblex/niva/blob/02c32f8650decc64a1b70c9a019b1c8479debe34/packages/devtools/src/build-scripts/build-windows.ts#L101-L118