Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor with Umi@4 and electron@22 #14

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

leftstick
Copy link

Brand new example for electron

@leftstick leftstick requested a review from sorrycc January 5, 2023 09:32
@txp1035
Copy link
Member

txp1035 commented Jan 6, 2023

其实我不太建议electron去做脚手架的例子,实际使用更多是把现有的web脚手架改成electron的项目。

不建议electron做脚手架的原因:

  1. 不管是react还是vue都有成熟的脚手架
  2. 用户也更熟悉自己常用的脚手架
  3. 如果按照现有的脚手架改加上electron元素感觉会重复,然后改一个地方的脚手架还要同步更新另一个地方的脚手架。

我的解决方案是基于现有脚手架通过命令生成electron项目

基于脚手架生成electron项目的优点:

  1. 用户使用自己熟悉的技术栈无成本使用
  2. 主要解决electron的一些配置问题,各种网络坑,配置坑,帮助新手能够开箱即用。
  3. 和脚手架分离,可以把精力放在electron的更新上面,放在electron的常用功能上面怎么让用户更简单更快的构建一个应用上面

我去年做了这个项目比如下面的文章
https://juejin.cn/post/7125252026232995870
@sorrycc @leftstick
目前这个仓库是在我的仓库作为一个提效手段,其中不止这个功能,如果需要可以在umi组织中单独建立一个仓库来做这个事情。

我的想法是在umi中开一个新项目,然后做这个工具

  1. 这个工具作为一个通用版,所有项目都可以使用
  2. 可以在umi中加一个命令,把umi项目快速转成electron项目

@leftstick
Copy link
Author

对于不建议做脚手架的建议,我是支持的。脚手架在 “多了个 electron”的问题上意义不大。

我更希望这个项目 就像它的名字的一样,是个 example, 或者是 reference。 我更倾向于 reference。
而且不是针对 视图层的 reference,能找到这里的基本都是 web 开发人员,没几个需要了解 web 如何开发;
而是针对 electron 部分。 这个部分,我觉得是很多 初涉 electron 的开发人员 最迫切了解的。

我们必须承认,github 上有不少不错的开源 electron 项目,但那些毕竟是“大、且复杂的”,如果从寻找“处理某一类问题的具体做法”的角度看,从大型开源项目里找 reference 是比较困难的。

所以我最初的目的是想把一些我自己经历的 electron 开发过程中的问题精炼成一个个示例在这个 repo 里,可以给其他朋友一些参考。

后期我希望(有精力的前提下),能把这个项目完善:

  • renderer 和 main process 之间通信的示例
  • main process 增加 native 依赖 如何打包的示例
  • URL Scheme的实现示例
  • 自定义工具栏的示例
  • 自定义状态栏 tray 的示例
  • 网络请求示例(我印象里从 renderer 里调用 api 会有一些问题需要特殊处理),这个也可以演示下该如何搞
  • 系统快捷键如何配置示例
  • 自动更新示例
  • 打包签名示例(这个我压根不会,也没有买了证书的apple 开发者账号可以测试,有待研究)
  • ....

后面我会在 readme 里把这些演示点 都列出来,然后 link 到具体涉及的代码位置,方便大家快速查阅

@txp1035
Copy link
Member

txp1035 commented Jan 6, 2023

所以我最初的目的是想把一些我自己经历的 electron 开发过程中的问题精炼成一个个示例在这个 repo 里,可以给其他朋友一些参考。

我觉得没有问题,你的想法是做一个例子,我的想法是帮助用户无成本接入electron,就像你买一杯咖啡不需要知道咖啡是怎么做的,给钱就能喝到味道出不错的咖啡。umi其实也是做的这么个事情,降低react开发的一个成本,让用户最少代码就能运行一个react项目,路由很多东西不让用户感知到,这样对初学者非常友好,如果你再深入了解,我们还提供了很多配置选择。我这个事情应该就是想要去帮助用户快速、简单的构建electron应用。有点类似antd pro使用命令生成组件的感觉,生成出来首先是保证能运行的,如果你有特殊自己的配置也可以自行更改的

从示例代码上来看,如果在一个仓库,对于初学者很难受,因为增加了很多功能导致main代码增多,初学者看起来会很难受,比如通信写哪儿些代码,需要哪儿些文件,如果是每一个示例一份代码的话示例的作用可能会大一点,杂在一起就不太容易起到示例的作用

@leftstick
Copy link
Author

从示例代码上来看,如果在一个仓库,对于初学者很难受,因为增加了很多功能导致main代码增多,初学者看起来会很难受,比如通信写哪儿些代码,需要哪儿些文件,如果是每一个示例一份代码的话示例的作用可能会大一点,杂在一起就不太容易起到示例的作用

对,这个需要在示例项目里规划好。
我初步想利用 路由把他们 控制在各自的目录下,UI 上给菜单,这样,从 UI 上就能快速看到自己需要的内容什么样子,找代码也会方便一些

@diw1
Copy link

diw1 commented Mar 22, 2023

从这个PR里面学到了很多 感谢 @leftstick

@leftstick
Copy link
Author

@diw1 那说明这个 PR 还是有意义的,哈哈

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants