Electron-vue脚手架改造vue项目的方法


Posted in Javascript onOctober 22, 2018

1. 什么是Electron

Electron可以让你使用纯 JavaScript 调用丰富的原生 APIs 来创造桌面应用。你可以把它看作是专注于桌面应用而不是 web 服务器的,io.js 的一个变体。

这不意味着 Electron 是某个图形用户界面(GUI)库的 JavaScript 版本。 相反,Electron 使用 web 页面作为它的 GUI,所以你能把它看作成一个被 JavaScript 控制的,精简版的 Chromium 浏览器。

从开发的角度来看, Electron application 本质上是一个 Node. js 应用程序。应用启动的入口是一个与 Node.js 模块相同的 package.json文件。

项目名称:Electron

项目官网:https://electronjs.org/docs

2. Electron核心

electron核心我们可以分成2个部分,主进程和渲染进程。主进程连接着操作系统和渲染进程,可以把她看做页面和计算机沟通的桥梁。渲染进程就是我们所熟悉的前端环境了。只是载体改变了,从浏览器变成了window。传统的web环境我们是不能对用户的系统就行操作的。而electron相当于node环境,我们可以在项目里使用所有的node api 。

简单理解就是:给web项目套上一个node环境的壳。

3. 什么是Electron-vue

本案例中用到的是Electron-vue脚手架,原项目采用了vue-cli脚手架搭建开发环境,在开始编码之前,在github上搜了一下,发现有大神写了一个基于Vue和Electron的脚手架就是Electron-vue啦

项目名称:electron-vue

项目地址:https://github.com/SimulatedGREG/electron-vue

项目文档:https://simulatedgreg.gitbooks.io/electron-vue/content/en/

4. Electron-vue改造vue项目

调整前(通过命令vue init webpack my-project 创建项目)

Electron-vue脚手架改造vue项目的方法

改造后(通过命令vue init simulatedgreg/electron-vue my-project 创建项目,在用该命令初始化vue项目时,各个参数跟vue-cli初始化项目是一样样的)

Electron-vue脚手架改造vue项目的方法

调整步骤

将 原项目的src目录下的文件 拷贝到 当前项目src/renderer目录 下。调整好之后npm run dev启动,一片红啊

存在问题

1.   原项目中引用的工具包,如element-ui  stylus-loader  stylus在新项目中需安装一下

2.   原项目中在build/webpack.base.conf.js中配置的参数对应的修改到新项目的.electron-vue/webpack.renderer.config.js中

build/webpack.base.conf.js文件如下:

Electron-vue脚手架改造vue项目的方法

.electron-vue/webpack.renderer.config.js调整如下:

Electron-vue脚手架改造vue项目的方法

3.   原项目中用到了stylus预编译,Electron-vue初始化的项目无法编译stylus,需要在.electron-vue/webpack.renderer.config.js 中做相应配置,让新项目能正常编译stylus,(如果用到了less、sass等其他css预编译语言,需设置对应的配置项)

Electron-vue脚手架改造vue项目的方法

4. 样式出错,Electron是基于WebKit内核的,对于flex、box-sizing、filter等属性需加上-webkit前缀

5. 可能存在的误区

一开始接到要将web页面包装成桌面应用的需求时,因为项目都是用的vue编写,惯性固化的思维让我认为只有vue项目通过Electron-vue的构建方式,(先安装Electron-vue脚手架,再把原先的Vue项目拷贝过来)才能构建成桌面应用。事实是,将项目打包成桌面应用跟使用什么前端框架没有关系,通过Electron任何项目都能打包成桌面应用(注意不是Electron-vue,Electron-vue是能快速将Vue项目打包成桌面程序的脚手架工具,整合了Vue脚手架和Electron的产物)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery this 和 $(this) 的区别
Aug 23 Javascript
jquery tab标签页的制作
May 10 Javascript
JS按字节截取字符长度实例
Nov 20 Javascript
json的定义、标准格式及json字符串检验
May 11 Javascript
JavaScript基础语法之js表达式
Jun 07 Javascript
ES6入门教程之Class和Module详解
May 17 Javascript
vue插件vue-resource的使用笔记(小结)
Aug 04 Javascript
Jquery获取radio选中值实例总结
Jan 17 jQuery
Vue使用zTree插件封装树组件操作示例
Apr 25 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
Sep 06 Javascript
JavaScript中的null和undefined用法解析
Sep 30 Javascript
vue实现简易的双向数据绑定
Dec 29 Vue.js
angular 服务的单例模式(依赖注入模式下)详解
Oct 22 #Javascript
vue 配置多页面应用的示例代码
Oct 22 #Javascript
微信小程序引用iconfont图标的方法
Oct 22 #Javascript
详解微信小程序与内嵌网页交互实现支付功能
Oct 22 #Javascript
js异步上传多张图片插件的使用方法
Oct 22 #Javascript
js实现动态添加上传文件页面
Oct 22 #Javascript
Javascript 实现 Excel 导入生成图表功能
Oct 22 #Javascript
You might like
在PHP中读取和写入WORD文档的代码
2008/04/09 PHP
php删除左端与右端空格的方法
2014/11/29 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
php 类中的常量、静态属性、非静态属性的区别
2017/04/09 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
FF IE兼容性的修改小结
2009/09/02 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
JavaScript操作HTML元素和样式的方法详解
2015/10/21 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
HTML+JavaScript实现扫雷小游戏
2019/09/30 Javascript
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
python检测远程端口是否打开的方法
2015/03/14 Python
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
Pycharm之快速定位到某行快捷键的方法
2019/01/20 Python
Django学习笔记之为Model添加Action
2019/04/30 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
班队活动设计方案
2014/01/30 职场文书
我的1919观后感
2015/06/03 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书
浅析MongoDB之安全认证
2021/06/26 MongoDB
解析探秘fescar分布式事务实现原理
2022/02/28 Java/Android