基于 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 相关文章推荐
WordPress 照片lightbox效果的运用几点
Jun 22 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
Nov 14 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
Sep 09 Javascript
javaScript如何生成xmlhttp
Dec 16 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
Jun 23 Javascript
JQuery实现鼠标移动图片显示描述层的方法
Jun 25 Javascript
vue-quill-editor富文本编辑器简单使用方法
Sep 21 Javascript
webpack之引入图片的实现及问题
Oct 08 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
Apr 14 Javascript
vue-cli3 DllPlugin 提取公用库的方法
Apr 24 Javascript
浅析JS中NEW的实现原理及重写
Feb 20 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
Nov 06 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面向对象编程快速入门
2006/10/09 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
2015/03/18 PHP
PHP类的封装与继承详解
2015/09/29 PHP
javascript 特殊字符串
2009/02/25 Javascript
写出更好的JavaScript程序之undefined篇(中)
2009/11/23 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
JavaScript中的原型和继承详解(图文)
2014/07/18 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
微信小程序 canvas API详解及实例代码
2016/10/08 Javascript
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
Vue.extend构造器的详解
2017/07/17 Javascript
js移动端图片压缩上传功能
2020/08/18 Javascript
vue.js根据代码运行环境选择baseurl的方法
2018/02/28 Javascript
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
javascript实现倒计时提示框
2021/03/02 Javascript
python实现的防DDoS脚本
2011/02/08 Python
python实现在无须过多援引的情况下创建字典的方法
2014/09/25 Python
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
理解Python中的With语句
2016/03/18 Python
python绘制直线的方法
2018/06/30 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
python解析yaml文件过程详解
2019/08/30 Python
pytorch的batch normalize使用详解
2020/01/15 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
2020/04/22 Python
技能竞赛活动方案
2014/02/21 职场文书
检讨书格式
2015/01/23 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
移除Selenium中window.navigator.webdriver值
2022/06/10 Python