electron 使用webpack打包遇到一个问题。
本来如果你的网页单纯运行在electron里面是没有问题的。配置文件里面加上这个就行
target: 'electron-renderer',
但是现在的问题就是,我的网页,想通过浏览器
http://127.0.0.1:8088/index.html 这样的形式也能访问。
所以,现在就是,一个网页,既可以运行在electron里面,也要能运行在外部的浏览器里面。
但是这个target: 'electron-renderer',要么就是electron-renderer,要么就是web。也就是只能一套。
我现在的方式就是,打包两套js。然后用js判断是electron的话,html加载一套js,如果是外部浏览器的话,加载另外一套js。
这样做是有点蛋疼。
但是如果你设置 target: 'web',
只要你的js里面有下面这个
require('electron')
那么打包就提示报错。也就是你所有的js代码都不能有require('electron')。
不知道如何解决这个问题。
eletron中会用到node的模块,比如fs模块,直接读写文件
另一方面,electron有main进程render进程,main进程就是使用node启动一个浏览器,而render就是浏览器中的那个网页。
网页有时候需要和主进程通信,ipc模块就是用于两个进程间的通信。
require('electron')也属于这部分
顺便,electron模块用到了fs模块。
如果以网页的形式访问,以上两个部分都用不到,当然会报错,这只是其一。
其二,网页在浏览器中的时候,禁止自动读写文件,这是浏览器规范+web安全所限。electron读取文件也是因为与主进程通信实现的。
扯了这么多,简单说就是,除非你全都不用electron模块,否则,没门。