使用vue搭建一个electron程序


折腾了两天,尝试了electron-vue和electron-forge,效果都不怎么理想,electron-vue的electron版本太老,升级坑实在是太多,electron-forge版本不知道怎么更新,最后还是选择原生的vue框架来搭建,查了不少资料,解决的一部分问题

创建一个vue+electron项目

vue create app

一路回车下来

cd app
vue add electron-builder

修改electron-builder安装源

这里装了一晚上electron-builder都没成功,魔法上网和替换cache中的文件都试了一遍,安装的效果不是很满意,今天突然在csdn看到一个评论,完美解决

先修改npm的配置,也就是.npmrc这个文件

npm config edit

将下面两行加到文件中

electron_mirror=https://npm.taobao.org/mirrors/electron/
electron-builder-binaries_mirror=https://npm.taobao.org/mirrors/electron-builder-binaries/

之后就可以vue add electron-builder

我是在npm install electron -g之后才运行的,不知道不装全局electron有没有影响

这里还有个坑,可能会导致build失败

cannot move downloaded in to final location

进到path提示的路径中,把一串数字命名的文件夹再重命名为path中的名称即可

运行electron

npm run electron:serve

大概率是可以成功运行了

修改background配置

接下来的配置才是天坑,你会发现node的api在vue中支楞不起来,原因是electron禁止了在网页中操作node

在background.js中修改webPreferences中的nodeIntegration,原先的process.env.ELECTRON_NODE_INTEGRATION打印出来是false

  win = new BrowserWindow({ 
    width: 800, 
    height: 600, 
    webPreferences: {
      nodeIntegration: true //process.env.ELECTRON_NODE_INTEGRATION
  } })

依旧无法执行???

原因是electron暴露出来的api需要在函数前面加个window才可以运行

例:

const fs = window.require('fs');

可以在vue中对window解构

const { require } = window
const fs = require('fs')
console.log(fs.readdirSync('.'))

成功打印


文章作者: Kevin。
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Kevin。 !
评论
 上一篇
使用ctfd搭建一个可以启动docker的ctf平台 使用ctfd搭建一个可以启动docker的ctf平台
帮学校搞一个CTF平台,还要能自己开启docker环境,找到一个ctfd平台的插件 CTFd-Whale 这个插件提供的环境有一段时间没更新,有些配置已经不能用了,于是clone了下来改了几个地方 下面是完整Centos7搭建步骤,最好在爱
2020-07-01
下一篇 
一个无损音乐下载软件的逆向 一个无损音乐下载软件的逆向
吾爱上面发现个音乐软件,可以下载好多无损歌曲,正好也想下几首歌,于是反编译过来玩玩 查了壳是.net写的,好办多了 用dnSpy反编译之后发现有些地方被加密了,试着用魔改的de4dot脱一下壳,没想到成功了 再放到dnspy里面,发现原
2020-06-03 Kevin。
  目录