基于 Vue 的 Electron 项目搭建过程图文详解


Posted in Javascript onJuly 22, 2020

Electron 应用技术体系推荐

基于 Vue 的 Electron 项目搭建过程图文详解

目录结构

demo(项目名称)
├─ .electron-vue(webpack配置文件)
│ └─ build.js(生产环境构建代码) 
| └─ dev-client.js(热加载相关)
│ └─ dev-runner.js(开发环境启动入口)
│ └─ webpack.main.config.js(主进程配置文件)
│ └─ webpack.renderer.config.js(渲染进程配置文件)
│ └─ webpack.web.config.js
├─ build(是文件打包使用的)
│ └─ win-unpacked/
│ │ ├─ locales(地区语言资源包)
│ │ ├─ resources(地区语言资源包)
│ │ ├─ *.dll(动态链接库)
├─ dist(打包后的文件资源)
│ ├─ electron
| ├─ web
├─ node_modules/(依赖目录)
├─ src(源码)
│ ├─ main(主进程)
│ │ └─ index.dev.js(捆绑index.js)
│ │ └─ index.js(主进程的进程JS)
│ ├─ renderer(渲染进程)
│ │ ├─ assets/(放置静态资源,如图片,视频,静态配置)
│ │ ├─ components/(放置vue页面)
│ │ ├─ router/(放置页面路由)
│ │ ├─ store/(放置公共模块,如vuex)
│ │ ├─ App.vue
│ │ └─ main.js
│ └─ index.ejs
├─ static/(静态文件)
├─ test
│ ├─ e2e
│ │ ├─ specs/
│ │ ├─ index.js
│ │ └─ utils.js
│ ├─ unit
│ │ ├─ specs/
│ │ ├─ index.js
│ │ └─ karma.config.js
│ └─ .eslintrc#全局配置文件
├─ .babelrc
├─ .eslintignore
├─ .eslintrc.js
├─ .gitignore
├─ package.json
└─ README.md

环境搭建

默认有 node 环境.

先安装 electron vue vue-cli ,因为 electron-vue 中有内置 webpack ,无需再装一个独立的 webpack

npm install -g electron
npm install -g vue
npm install -g vue-cli

创建一个空文件夹,DOS命令窗口进入该文件夹位置,初始化一个 electron-vue 项目。

//使用vue-cli来安装electron-vue的模板
vue init simulatedgreg/electron-vue demo

注:demo 是项目名称

安装依赖

npm install

启动项目(开发环境)

npm run dev

完成1~3步骤,一个基于 vue 的 electron 项目就初始化完成了。

启动项目后效果图如下:

基于 Vue 的 Electron 项目搭建过程图文详解 

问题解决 初始化报错

当运行 npm init simulatedgreg/electron-vue demo 命令初始化项目时报错,大致意思说找不到 electron-vue 或者安装 create-electron-vue 等原因导致失败,可以选择重新运行命令多试几次,或者先下载electron-vue源码,然后生成自己的项目模板。下面说后者的步骤。

1.electron-vue 下载

2.cmd 切换到该项目根目录

3.初始化一个自己的项目。初始化完之后可以再命令对应的“目录路径”看到你的项目

vue init 项目路径 项目名

4.完成

启动项目报错

若第一次启动项目报错如下:

基于 Vue 的 Electron 项目搭建过程图文详解

大概意思是 提示 src/index.ejs 中没有定义 process 。

原因分析:大概是 html-webpack-plugin 插件处理该ejs文件时,没有读到该插件对应有 process 属性,应该是去配置文件 "./electron-vue/webpack.render.config.js" 文件中读取 HtmlWebpackPlugin 插件的 process 属性,而 "./electron-vue/webpack.render.config.js" 并未定义该属性,固报此错。

index.ejs 源码:

基于 Vue 的 Electron 项目搭建过程图文详解

配置文件中插件配置代码:

基于 Vue 的 Electron 项目搭建过程图文详解

解决方法一(推荐):

把index.ejs文件中的 <% if (!process.browser) { %> 改成

<% if (!htmlWebpackPlugin.options.process.browser) { %> ,

改完后代码:

index.ejs:

基于 Vue 的 Electron 项目搭建过程图文详解

./electron-vue/webpack.render.config.js:

基于 Vue 的 Electron 项目搭建过程图文详解

解决方法二:直接删除下图中红框框住部分,没有什么影响:

基于 Vue 的 Electron 项目搭建过程图文详解

解决方法三:将node 12.x版本还原到10.16的稳定版即可。

注释:技术推荐Electron 应用技术体系推荐引用他人的electron-vue项目讲解的视频截图,找不到链接了就不写上了。

到此这篇关于基于 Vue 的 Electron 项目搭建的文章就介绍到这了,更多相关基于 Vue 的 Electron 项目搭建内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jQuery的一些特性和用法整理小结
Jan 13 Javascript
javascript数组的使用
Mar 28 Javascript
extjs中form与grid交互数据(record)的方法
Aug 29 Javascript
jQuery后代选择器用法实例
Dec 23 Javascript
javascript动态设置样式style实例分析
May 13 Javascript
js代码验证手机号码和电话号码是否合法
Jul 30 Javascript
实现高性能JavaScript之执行与加载
Jan 30 Javascript
JavaScript中的Number数字类型学习笔记
May 26 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
Jul 07 Javascript
angular双向绑定模拟探索
Dec 26 Javascript
vue+iview写个弹框的示例代码
Dec 05 Javascript
Openlayers绘制聚合标注
Sep 28 Javascript
浅谈JS for循环中使用break和continue的区别
Jul 21 #Javascript
解决vue 给window添加和移除resize事件遇到的坑
Jul 21 #Javascript
js实现带积分弹球小游戏
Jul 21 #Javascript
在vue中created、mounted等方法使用小结
Jul 21 #Javascript
解决vue的touchStart事件及click事件冲突问题
Jul 21 #Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
Jul 21 #Javascript
解决Vue中的生命周期beforeDestory不触发的问题
Jul 21 #Javascript
You might like
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
2013/05/08 PHP
关于JSON以及JSON在PHP中的应用技巧
2013/11/27 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
JavaScript中的闭包原理分析
2010/03/08 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
JavaScript实现点击按钮就复制当前网址
2015/12/14 Javascript
JavaScript常用本地对象小结
2016/03/28 Javascript
jQuery图片轮播实现并封装(一)
2016/12/03 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
2017/01/20 Javascript
AngularJS实现路由实例
2017/02/12 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
node.JS md5加密中文与php结果不一致的解决方法
2017/05/05 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
使用VUE实现在table中文字信息超过5个隐藏鼠标移到时弹窗显示全部
2019/09/16 Javascript
Vue项目中使用mock.js的完整步骤
2021/01/12 Vue.js
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
python WindowsError的错误代码详解
2017/07/23 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
Python引用传值概念与用法实例小结
2017/10/07 Python
python3.5安装python3-tk详解
2019/04/26 Python
python实现远程控制电脑
2019/05/23 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
蒙蒂塞罗商店:Monticello Shop
2018/11/25 全球购物
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
素质拓展感言
2014/01/29 职场文书
初一体育教学反思
2014/01/29 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
小学生节水倡议书
2015/04/29 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
思想品德课教学反思
2016/02/24 职场文书