是萝卜就想摘,摘了就有坑,那是放回萝卜还是用土填平还是继续前行
序:
- 问题仅仅记录此时此刻遇到的,答案也非各位想的必治之药,是药总会有失效,总也会有治不到的地方,但是创造药的人是不会也不应该有此烦恼,所以请砥砺前进
- 答案并非都是治本的,且广泛来自网络对此分享的人,此处仅为个人笔记,慎入
- 问题有些并非来自electron本身,只是恰好因为这个遇到,请不要对号入座
-
问题:
1. Package "electron-builder" is only allowed in "devDependencies"
答:顾名思义如下:
npm i electron-builder --save-dev
2. fs.existsSync is not a function
答: 其实是因为不在node环境去生成导致,比如我这里放在vue的App.vue文件里进行引入electron代理,然后运行报错。用断点去分析,existsSync 实际为undefined,具体定位到了node_modules/electron/index.js,代码定义为require('fs'),此处仅返回了Object,从运行的当前index.js文件所处的node_modules的确没有fs模块,项目的指向为node_modules@types\node\ts3.2\fs.d.ts定义的,但是明显运行时的node_modules并没有这个,皆因这是node的内置模块,运行时却是Chromium环境,所以html或者js里面调用这个electron代理时才会发现这是个缺陷的代理(山寨版),当然你可以把fs也抽给它,但是我觉得它后面依赖的还是会出问题,难不成还要把牵连的node模块都给前置,那electron搞个代理给前端调用岂不是多此一举,其实我更希望的是整合,而不是这种中间者堆起来的感觉,出问题就好似糖葫芦一样串起来,但是现在看起,的确还是得搞个代理模式,故应该把electron代理放回原来的环境,当前端require的时候就不会再是走electron/index的代码,而直接就是electron代理这个对象,此处一旦解决摸清楚,那么html以及js如何调用electron来达成调用本地API就很容易了,具体请看整合框架,但是并非这一种方式,其他的请自行探索,或许革命electron,不再是这种相对依赖的代理会更好点,毕竟要这么绕,本质仅仅是想以html5技术去搭建PC平台。最后就是官方文档以及常见问题均有关于此的蛛丝马迹,只是没有直接点明,或者遇到类似这种的,或者当某某总是在问,electron怎么写vue,怎么写angular,怎么写react,其实你为何不直接问怎么写html和js以及css,然后才是vue,angular,react怎么去写html和js以及css,这样一看是不是就有所关联了,本系列的整合皆是这样,封装容易让人迷失,看穿伪装尤为重要。
3.待发现
网友评论