Electron + 新VueCli 初探

2020-08-25
最近在翻看NodeJS文档时发现了Electron

先来记下踩过的几个坑:
以下所说的可以执行Node模块都是指可在渲染进程中可执行的
期间所用到的框架与工具等(Electron 9.2.1,Vue 2.6.10, @vue/cli 4.4.6)都是至今的最新版

  • 新版的Electron中需要打开nodeIntegration: true 属性 在渲染进程中的<script>中才可以引入Node模块,否则只能通过预加载属性(preload)引入的js文件才能用Node;
  • Vue不管生产环境 还是 开发环境 在webpack config中加入target: 'electron-renderer' 这样当Electron loadURL 或者 loadFile都可以直接执行Node模块,具体原因还未深究,就当前了解 觉得是 加入target: 'electron-renderer'后 webpack不对Electron做混淆了,这样做有些问题请看下一条;
  • 不能使用前端中的clipboard框架,这样会在dev环境报错;build不会;原因是Electron中也含有 clipboard 模块,命名冲突;初步估计是 build对前端框架代码混淆了,而对Electron没有;

解决了以上三个问题 基本就可以使用Vue做UI来实现Electron桌面应用程序了;
找了太多文章,也不记得了。感谢最终这篇文章的末尾道出关键;
Webpack如何构建Electron应用

刚刚说到的clipboard 可以放弃前端的那个,直接使用Electron自带的(可直接在渲染进程中使用),更加强大;

以下是采坑经历,可选择浏览

最近在翻看NodeJS文档时发现了Electron,起初觉得我好像一直再找这个(文章末尾细说)。今天终于被我找到了。会前端就能开发APP了。(虽然我是做iOS开发的,程序无言界嘛~哈哈)

  • 马上着手研究,看文档,写demo。然后发现,并没有那么爽。
    首先是区分主进程,与渲染进程,起初感觉自己理解的挺对,结果官方下载的demo与他们的文档大相径庭。。。为什么我在渲染进程写的代买都报错呢?百思不得其解,后来发现另一个electron-api-demo才知道 Electron新版默认是在渲染进程禁止Node的(就因为这个配置折腾了好久 后来找到专门介绍所有配置的文档 挨个看了一遍!);
  • 渲染进程的问题解决完了 ,就该结合Vue了,结果继续扑街。
    为了好区分 我并没有把文件都混到一起 而是分别建立了 Vue工程 和 Electron工程 分别测试 用Electron中loadURL加载 Vue server的url 用Electron中loadFile加载Vue build后的dist/index.html 的绝对地址;
    不管server 还是build都报错。。某些文件方法未找到,继续各种尝试,改名了解import 与 request的区别等等 都不行,然后继续百度。。
    很多文章都是重复的,或者干脆就是官方文档扒的,最后找到了一篇修改webpack配置的文章,就是添加 target: 'electron-renderer'
    再往后就是发现虽然在Vue build后代码可以执行,但是在 Vue server环境中还是报错,这可不利于开发调试。仔细一看报错就是我的工程中使用了 clipboard,删除后即可正常运行;

写在最后:
我为什么说我一直再找这个(Electron),是因为之前帮girlfriend写了一个工具页面,是通过phpstudy在本地开启服务加代理api接口,算是半个桌面应用了吧(Chrome可以设置,将网页单独窗口,单独启动icon,特像桌面应用)。
当时就萌生了搞一个这样的桌面应用,后来是有了新需求,需要用到selenium,正好会点Python,就想用django搭建一个后台,然后用前端页面 通过一些方式(当时想了 发请求 或者 websockt)去告诉Python去触发一些系统级的api和调用selenium控制浏览器;最后还是没成,发现这么做很重,websockt还不好保活(因为selenium用的不熟,还是菜鸟,经常会报错,websockt就下线了。。),我总不能再去下载保活的工具包程序吧。功能没多少,软甲下载一堆了。
然后就发现Electron了。
过几天整理一下 ,我再发一个完成demo

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容