maotoumao / MusicFreeDesktop

插件化、定制化、无广告的免费音乐播放器
https://musicfree.catcat.work
GNU General Public License v3.0
3.28k stars 295 forks source link

linux 编译打包之后执行点击关闭不能最小化 #28

Closed heyeah closed 11 months ago

heyeah commented 1 year ago

录屏_选择区域_20231014224538

zxp19821005 commented 1 year ago

遇到相同的情况。 目前,我已经将其移植到了ArchLinux的AUR,具体地址为:https://aur.archlinux.org/packages/musicfree-desktop 因为Electron的体积比较大,所以我使用了系统自带的,将app目录打包成app.asar 另: 能否添加一个0.0.1之类的标签?现在启动之后就提示要更新,直接跳转到 (https://wwzb.lanzoue.com/b042poiuj) 然后并没有Linux版本的下载。 还有,resources/res目录是否应该直接复制到resources/app目录下? 还有2个小建议: 打包完成后,会弹出调试窗口,然后我做了如下操作:

echo -e "\nprocess.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true'" >> app/.webpack/main/index.js

3个告警消失了,还有最后一个告警:

[269394:1018/180952.906642:ERROR:CONSOLE(1)] "Uncaught (in promise) TypeError: Failed to fetch", source: devtools://devtools/bundled/panels/elements/elements.js (1)

不知道该如何解决。

maotoumao commented 1 year ago

@zxp19821005

wow~ 因为之前只顾着把功能写好,所以开发的流水线和规范啥的都没有很在意,直接在master分支提交的代码,也没在release页上新建个tag;目前master分支还有一些未开发完的功能,这确实不太好,最近打算完善一下;

自动更新

目前启动就提示更新是因为会自动把当前的版本(也就是package.json里的版本号)和 项目仓库中的version 做对比;

检测更新的逻辑在:主渲染窗口useBootstrap函数的45-47行;

具体检测更新的代码在src/renderer/utils/check-update.ts路径下,通过ipc调用了主进程的函数

如果要暂时避免弹出更新的话你可以把代码逻辑注释掉,或者把package.json里面的版本号修改为最新的版本号;

调试窗口

目前逻辑是做了判定,如果是开发模式会弹出调试窗口,如果是已经打包好就不弹出了,逻辑在:40-45行

我不知道是不是你对源代码做了些改动,或者打包方式有些差别导致判断失效,方便的话可以帮忙排查一下~

linux 版本

下个版本把构建linux包的流水线加上;这个issue反馈的无法最小化的问题我在本地修掉了(忘了有没有push了,在改造窗口间通信机制,等改完了一起发);

包路径

resources/res 应该是electron-forge自动把external资源拷贝到了resource目录;这里逻辑虽然能改但是和代码耦合,暂时先这样好了;

错误告警

开发的时候我一直忽略了这些报警,如果有影响开发体验的话直接在代码层面上关掉也好😂;最后一个问题感觉是devtools的问题,我好像也遇到过,但是貌似没啥影响所以没有深究

zxp19821005 commented 12 months ago

好的,谢谢!