基于 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 相关文章推荐
JS 加入收藏夹的代码(主流浏览器通用)
May 13 Javascript
js防止表单重复提交的两种方法
Sep 30 Javascript
js单例模式详解实例
Nov 21 Javascript
javascript中bind函数的作用实例介绍
Sep 28 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
Oct 17 Javascript
js改变Iframe中Src的方法
May 05 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
Oct 09 Javascript
详谈js中数组(array)和对象(object)的区别
Feb 27 Javascript
JavaScript框架Angular和React深度对比
Nov 20 Javascript
vue使用iframe嵌入网页的示例代码
Jun 09 Javascript
vue和webpack打包项目相对路径修改的方法
Jun 15 Javascript
用图片替换checkbox原始样式并实现同样的功能
Nov 15 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原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
php统计时间和内存使用情况示例分享
2014/03/13 PHP
php实现两表合并成新表并且有序排列的方法
2014/12/05 PHP
10个超级有用值得收藏的PHP代码片段
2015/01/22 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
PHP生成加减算法方式的验证码实例
2018/03/12 PHP
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
浅析Vue中拆分视图层代码的5点建议
2019/08/15 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
python 实现文件的递归拷贝实现代码
2012/08/02 Python
Python 多线程抓取图片效率对比
2016/02/27 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
在pycharm中设置显示行数的方法
2019/01/16 Python
Django密码系统实现过程详解
2019/07/19 Python
python用requests实现http请求代码实例
2019/10/31 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
餐厅采购员岗位职责
2014/03/06 职场文书
诚信承诺书模板
2014/05/26 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
科级干部培训心得体会
2016/01/06 职场文书