用 Vue 建立一个简单的 electron 桌面应用

1. electron简介

2. 工具介绍

3. 实践效果,步骤

1)一个简单的 Electron 桌面应用都是冲 Hello World! 开始的。

以上是使用 electron-vue 超级迅速制作出来的 electron 桌面应用。

2)安装的组件

vue init simulatedgreg/electron-vue white-electron-first

3)build tool choice ?

构建工具的选择,比较先进的是electron-builder。

实际上调试,开发可以直接选择 electron-builder,它支持热更新,像目前大部分在使用的 vue-cli 构建出来的项目一样保存即更新。

如果是简单打包应用就直接选择 electron-packager 就好了,功能比较简单。

4) 下一步

> npm i  // 装包

> npm run dev  // 测试环境运行

就可以有一个初步的Electron桌面应用了。

4. 如何将网站只做成 ELectron 应用?

1)网站页面

to 桌面应用

2)熟悉 node 的朋友都知道,启动一个 node 程序,通常就是 node app.js 之类的。

把这个 Node 应用转换成一个 Electron 应用也是非常简单的,我们只不过是把 node 运行时替换成了 electron运行时。package.json如下:

{

    "script": {

        "electron": "electron build/electron.js",

    }

}

Electron.js (一般启动项目写在main.js,具体看项目) 这个文件应该怎样写呢,这种基本都是参考成熟项目的,一般简单的如:

// electron.js"

const {app, BrowserWindow} = require('electron')


  // Keep a global reference of the window object, if you don't, the window will

  // be closed automatically when the JavaScript object is garbage collected.

  let win


  function createWindow () {

    // 创建浏览器窗口。

    win = new BrowserWindow({width: 800, height: 600})


    // 然后加载应用的 index.html。

    win.loadFile('index.html')


    // 打开开发者工具

    win.webContents.openDevTools()


    // 当 window 被关闭,这个事件会被触发。

    win.on('closed', () => {

      // 取消引用 window 对象,如果你的应用支持多窗口的话,

      // 通常会把多个 window 对象存放在一个数组里面,

      // 与此同时,你应该删除相应的元素。

      win = null

    })

  }


  // Electron 会在初始化后并准备

  // 创建浏览器窗口时,调用这个函数。

  // 部分 API 在 ready 事件触发后才能使用。

  app.on('ready', createWindow)


  // 当全部窗口关闭时退出。

  app.on('window-all-closed', () => {

    // 在 macOS 上,除非用户用 Cmd + Q 确定地退出,

    // 否则绝大部分应用及其菜单栏会保持激活。

    if (process.platform !== 'darwin') {

      app.quit()

    }

  })


  app.on('activate', () => {

    // 在macOS上,当单击dock图标并且没有其他窗口打开时,

    // 通常在应用程序中重新创建一个窗口。

    if (win === null) {

      createWindow()

    }

  })


  // 在这个文件中,你可以续写应用剩下主进程代码。

  // 也可以拆分成几个文件,然后用 require 导入。

上文代码中有一段win.loadFile('index.html')的代码,意味着你的入口页面就是 index.html, 就像我们用electron-vue 模板启动的 hello world 一样。

3)我们的 view 应用实际上就是一个 SPA 的页面,打包出来后也会有这个入口index.html 文件。

于是 npm run build 先 build 出 dist 文件后,electron.js 的 index.html 替换成 dist 目录下的 html 文件之后,出现以下问题:打包出来的 css、js 文件访问不到了。

应该是应用版本不同,我们项目用的 webpack 找不到以上配置,于是直接改了 index.html 里面的 css,js 引用路径。

由于我们服务加载前必须先访问登陆系统,前端项目在没有配 ha 的情况下,单独的运行个静态前端项目是不行的呢。

然而,还是做到了。

实际也比较简单:直接把这段代码改成

// 然后加载应用的 index.html。

win.loadFile('index.html')

// to 本地服务的地址就好了

win.loadUrl('http://localhost:4000')

目前这是最简单的打包一个已有应用成 electron 应该的方法。

欢迎工作一到五年的Java工程师朋友们加入Java程序员开发: 854393687

群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

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

推荐阅读更多精彩内容

  • 昨天,我约好了爸爸一起去诵读,第二天,我凌晨五点起床的,因为我怕我迟到。我就和爸爸找了一个近处吃早饭。到...
    月康日健阅读 167评论 0 0
  • 上午10点多,收到老同学的微信,打个招呼之后,就开口借钱了。 许久没有联系的我们,剩下的也许就是点赞之情了。她向我...
    丹丹三撇阅读 641评论 0 0
  • 梁小姐发来信息的那天,我正望着窗外被防盗窗切割成长方形的灰土土的天空。 她说:“老宝,我结婚了。” 梁小姐是我大学...
    小北以南阅读 267评论 0 0