基于 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 相关文章推荐
JavaScript实现页面滚动图片加载(仿lazyload效果)
Jul 22 Javascript
jQuery:节点(插入,复制,替换,删除)操作
Mar 04 Javascript
快速查找数组中的某个元素并返回下标示例
Sep 03 Javascript
javascript实现复选框超过限制即弹出警告框的方法
Feb 25 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
Jun 21 Javascript
浅谈js数组和splice的用法
Dec 04 Javascript
canvas仿iwatch时钟效果
Mar 06 Javascript
JavaScript实现打印星型金字塔功能实例分析
Sep 27 Javascript
Angular2整合其他插件的方法
Jan 20 Javascript
详解vue-admin和后端(flask)分离结合的例子
Feb 12 Javascript
JS实现前端路由功能示例【原生路由】
May 29 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
Jun 01 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
第十四节--命名空间
2006/11/16 PHP
php Rename 更改文件、文件夹名称
2011/05/24 PHP
使用HMAC-SHA1签名方法详解
2013/06/26 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
2020/05/29 PHP
JavaScript格式化数字的函数代码
2010/11/30 Javascript
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
jquery使整个div区域可以点击的方法
2015/06/24 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
JS弹出对话框实现方法(三种方式)
2015/12/18 Javascript
简单实现js浮动框
2016/12/13 Javascript
JS多物体实现缓冲运动效果示例
2016/12/20 Javascript
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
javascript连接mysql与php通过odbc连接任意数据库的实例
2017/12/27 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
JavaScript插入排序算法原理与实现方法示例
2018/08/06 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
[03:17]2016完美“圣”典风云人物:冷冷专访
2016/12/08 DOTA
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
基于python实现雪花算法过程详解
2019/11/16 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
优秀党支部事迹材料
2014/01/14 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
新闻发布会新闻稿
2015/07/17 职场文书