基于 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 相关文章推荐
node.js学习总结之调式代码的方法
Jun 25 Javascript
jquery中获取元素里某一特定子元素的代码
Dec 02 Javascript
使用jQuery管理选择结果
Jan 20 Javascript
使用npm发布Node.JS程序包教程
Mar 02 Javascript
js实现分享到随页面滚动而滑动效果的方法
Apr 10 Javascript
Vue.js学习之计算属性
Jan 22 Javascript
Vue.js实现图片的随意拖动方法
Mar 08 Javascript
使用vue2实现购物车和地址选配功能
Mar 29 Javascript
JS动画实现回调地狱promise的实例代码详解
Nov 08 Javascript
layui监听select变化,以及设置radio选中的方法
Sep 24 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
Mar 04 Javascript
微信小程序选择图片控件
Jan 19 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
php 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
js实现登录与注册界面
2017/11/01 Javascript
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
微信小程序实现左滑修改、删除功能
2020/10/19 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
python用模块zlib压缩与解压字符串和文件的方法
2016/12/16 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
Django 连接sql server数据库的方法
2018/06/30 Python
Python实现提取XML内容并保存到Excel中的方法
2018/09/01 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
CNC数控操作工岗位职责
2013/11/19 职场文书
犯错检讨书
2014/02/21 职场文书
给老师的一封建议书
2014/03/13 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书
2014年法院工作总结
2014/11/24 职场文书
学籍证明模板
2015/06/18 职场文书