基于 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 指南/入门基础
Nov 30 Javascript
javascript实现仿银行密码输入框效果的代码
Dec 13 Javascript
js 设置选中行的样式的实现代码
May 24 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
Mar 19 Javascript
Jquery响应回车键直接提交表单操作代码
Jul 25 Javascript
bootstrap实现图片自动轮播
Dec 21 Javascript
JavaScript 详解预编译原理
Jan 22 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
Jan 24 Javascript
Vue获取DOM元素样式和样式更改示例
Mar 07 Javascript
ES6 Promise对象概念与用法分析
Apr 01 Javascript
ES6中Symbol、Set和Map用法详解
Aug 20 Javascript
jQuery实现影院选座订座效果
Apr 13 jQuery
浅谈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
MySQL中create table语句的基本语法是
2007/01/15 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
PHP加密解密实例分析
2015/12/25 PHP
直接生成打开窗口代码,不必下载
2008/05/14 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
JavaScript设置首页和收藏页面的小例子
2013/11/11 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
js分页工具实例
2015/01/28 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
在Javascript中处理字符串之big()方法的使用
2015/06/08 Javascript
JavaScript正则表达式实例详解
2016/10/16 Javascript
使用JavaScript生成罗马字符的实例代码
2018/06/08 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
Vue ​v-model相关知识总结
2021/01/28 Vue.js
[01:05:56]Liquid vs VP Supermajor决赛 BO 第二场 6.10
2018/07/04 DOTA
使用Python实现在Windows下安装Django
2018/10/17 Python
使用OpCode绕过Python沙箱的方法详解
2019/09/03 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
python将图片转base64,实现前端显示
2020/01/09 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
2020/05/22 Python
python numpy实现rolling滚动案例
2020/06/08 Python
基于python实现操作git过程代码解析
2020/07/27 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
css3+伪元素实现鼠标移入时下划线向两边展开的效果
2017/04/25 HTML / CSS
Peter Millar官网:美国高档生活服饰品牌
2018/07/02 全球购物
销售员自我评价怎么写
2013/09/19 职场文书
广告学专业毕业生自荐信
2013/09/24 职场文书
英语专业学生个人求职信
2014/01/28 职场文书
《要下雨了》教学反思
2014/02/17 职场文书
股东合作协议书范本
2014/04/14 职场文书
青年标兵事迹材料
2014/08/16 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
Python安装及建立虚拟环境的完整步骤
2022/06/25 Servers