Node环境搭建

本文假定你完成了nodejs的环境基础搭建:

镜像配置(暂时只配置node包镜像源,部分包的二进制镜像源后续讨论)、全局以及缓存路径配置,全局路径加入到了环境变量

 $ node -v
v12.18.1
$ npm -v
6.14.5
$ yarn -v
1.22.4 $ npm list -g --depth 0
+-- hexo@4.2.1 // 忽略Hexo,本人写博用的
`-- yarn@1.22.4

vue脚手架安装

为了更加便捷的创建一个vue项目,我们安装脚手架@vue/cli和@vue/init(vue-cli已经deprecated了)。之所以要安装@vue/init,是因为@vue/cli是3的版本,创建项目使用命令vue create app-name,且无法暂时无法使用模板,但是下文要用electron-vue模板进行创建,还是需要vue2的init命令来通过指定模板创建项目,为了兼容vue2的init特性,官方提供@vue/init作为桥接方式。

$ npm install -g @vue/cli
$ npm install -g @vue/cli-init $ npm list -g --depth 0
+-- @vue/cli@4.4.6
+-- @vue/cli-init@4.4.6
+-- hexo@4.2.1
`-- yarn@1.22.4 关于init说明:
vue init [options] <template> <app-name> generate a project from a remote template (legacy API, requires @vue/cli-init)

至此,你可以使用如下的形式,利用vue脚手架结合模板(template)来初始化你的vue项目(app-name)结构

vue init [options] <template> <app-name>

初始化Electron项目结构

在指定的目录下,我们使用如下的命令进行electron-vue的项目初始化:

$  vue init simulatedgreg/electron-vue electron-vue-demo

然而,这个过程很慢,甚至卡住不动。原因是指定模板进行创建时,会拉取github上的仓库进行模板初始化。幸运的是vue提供模板离线初始化的功能。

下载模板源码

https://github.com/SimulatedGREG/electron-vue

下载后解压存放在 用户目录/.vue-templates/ 下(没有就创建,注意复数s),形成如下的结构:

{home目录}/
.vue-templates/
electron-vue-master/(目录名随便,但是在待会儿init指定的时候需要一致)
.github/
template/
....

之后就可以使用离线(offline)模式创建:

 vue init --offline electron-vue-master electron-vue-demo # 名称和上述文件夹名称一致即可

之后就是按照向导进行创建工作:

$ vue init --offline electron-vue-master electron-vue-demo
> Use cached template at ~\.vue-templates\electron-vue-master ? Application Name electron-vue-demo(项目名)
? Application Id com.compilemind(Id,这里本人使用了自己的域名)
? Application Version 0.0.1(版本)
? Project description electron vue demo(描述)
? Use Sass / Scss? No(是否使用Sass/Scss编译器)
? Select which Vue plugins to install (Press <space> to select, <a> to toggle all, <i> to invert selection)
axios, vue-el, ectron, vue-router, vuex, vuex-electron(插件包)
? Use linting with ESLint? Yes(启用ESlint)
? Which ESLint config would you like to use? Standard(ESLint配置)
? Set up unit testing with Karma + Mocha? No(测试模块)
? Set up end-to-end testing with Spectron + Mocha? No(测试模块)
? What build tool would you like to use? builder # 这里我们使用electron-builder构建可执行程序
? author w4ngzhen <w4ngzhen@hotmail.com> vue-cli · Generated "electron-vue-demo".

运行Electron-Vue示例

  $ cd electron-vue-demo
$ yarn (or `npm install`)
$ yarn run dev (or `npm run dev`)

在install的过程中,我们会看到如下一段console输出:

> electron@2.0.18 postinstall D:\Projects\electron-vue-demo\node_modules\electron
> node install.js Downloading electron-v2.0.18-win32-x64.zip
[==========================================> ] 97.0% of 50.7 MB (2.77 MB/s)

可以注意到electron的node包安装完成后,配置了postinstall(安装完成后调用的脚本),该脚本执行其内部install.js脚本后,开始下载electron的二进制的文件。

首先为什么会有这个额外下载的过程呢?在本人看来,electron是基于Chromium内核的跨平台客户端解决方案(本人另一篇文章正好进行了CefSharp的封装工作),既然涉及到跨平台,而不同平台的底层实现必然有所差异,那么electron项目通过自己去实现跨平台,封装底层逻辑,让我们不关心底层的实现,而是专心于前端的开发,封装成果就是上述的electron-v2.0.18-win32-x64.zip内容。这里因为我们调试和构建的时候,就需要运行时,所以electron根据我们的当前的平台,去下载了对应已经完成针对平台编译封装的二进制内容。

为什么要下载的问题搞明白了,接下来我们要看看如何去下载。有些朋友可能会发现,自己在进行electron二进制包下载的时候,速度慢的离谱。为什么这么慢?我会过一两天对下载的脚本一探究竟(时间有限,过两天写)

现阶段我们需要在.npmrc文件中增加一行配置,让electron下载二进制文件的时候从指定的地方下载:

ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/

完成后,我们在install会发现有明显的提升。完成node包的install后,我们运行命令

$ npm run dev

启动后会发现客户端能够运行起来(即主进程能够运行),但是渲染进程报错:

Webpack ReferenceError:process is not defined,官方ISSUE已经存在该条:ISSUE

解决方案为:移除src\index.ejs中的该段代码,详细原因可以看ISSUE。

// src\index.ejs
<% if (!process.browser) { %>
<script>
if (process.env.NODE_ENV !== 'development') window.__static = require('path').join(__dirname, '/static').replace(/\\/g, '\\\\')
</script>
<% } %>

移除后,再次运行可以看到渲染成功的界面。

引入ElementUI

引入ElementUI相关包

npm install element-ui -S

在渲染进程模块的main.js中加入ElementUI组件

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
...
Vue.use(ElementUI)

完成配置以后,我们就可以按照以往的方式进行前端的开发了。

Electron+Vue+ElementUI开发环境搭建的更多相关文章

  1. windows下vue.js开发环境搭建教程

    这篇文章主要为大家详细介绍了windows下vue.js开发环境搭建教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中 ...

  2. vue的开发环境搭建命令加图解

    vue的开发环境的搭建 不管什么软件我们都要去官网下载安装,这是作为专业程序员的安全意识. 1.安装node.js 官方下载的页面:点击这里 大约展示的页面是这样子的!我们演示是windows 64位 ...

  3. 应用一:Vue之开发环境搭建

    简单分享下vue项目的开发环境搭建流程~ 1.安装nodeJS vue的运行是要依赖于node的npm的管理工具来实现,下载地址:https://nodejs.org/en/.安装完成之后以管理员身份 ...

  4. vue.js开发环境搭建以及创建一个vue实例

    Vue.js 是一套构建用户界面的渐进式框架.Vue 只关注视图层, 采用自底向上增量开发的设计.Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. 在使用 vue.js ...

  5. vue + vue-router+vuex+elementUI开发环境搭建

    先在npm中安装vue脚手架, //先安装国内镜像源 npm install -g cnpm --registry=https://registry.npm.taobao.org //安装vue cn ...

  6. vue.js开发环境搭建

    1.安装node.js(http://www.runoob.com/nodejs/nodejs-install-setup.html) 2.基于node.js,利用淘宝npm镜像安装相关依赖 在cmd ...

  7. 【vue基础学习】vue.js开发环境搭建

    1.安装node.js(http://www.runoob.com/nodejs/nodejs-install-setup.html) 2.基于node.js,利用淘宝npm镜像安装相关依赖 在cmd ...

  8. vue.js 开发环境搭建

    1.安装node.js(http://www.runoob.com/nodejs/nodejs-install-setup.html) 2.基于node.js,利用淘宝npm镜像安装相关依赖 在cmd ...

  9. Vue.js开发环境搭建的介绍

    包含了最基础的Vue.js的框架,包含了打包工具和测试工具,开发调试的最基本的服务器,不需要关注细节,只需关注Vuejs对项目的实现 npm在国内的网络使用较慢,所以推荐下载安装淘宝的镜像 1: 2: ...

随机推荐

  1. idea项目在maven projects中显示灰色的解决办法。建新建module src变成标准的文件夹

    在使用idea的过程中,有时会遇到其中一个maven模块变成灰色(可以通过view - tool windows -> maven projects 现实),如下所示: 造成这个的原因可能是忽略 ...

  2. 使用dom4工具:增删改xml文件(七)

    package dom4j_write; import java.io.File; import java.io.FileOutputStream; import org.dom4j.Attribut ...

  3. 传统JIT和java9新特性AOT理解

    java慢的原因 1.  除了少量基本类型用栈存储外,所有对象都使用堆存储.堆的性能低于栈. 2.  很多强制类型转换(cast)或加查,耗用内存大.java运行时对类型检测,如果类型不正确会抛出Cl ...

  4. JDBC中级篇(MYSQL)——处理大文本(CLOB)

    注意:其中的JdbcUtil是我自定义的连接工具类:代码例子链接: package b_blob_clob; import java.io.FileNotFoundException; import ...

  5. 及上一篇linux安装mysql的说明

    mysql8.0安全策略 1 密码规定:数字英文大小写加特殊符号组成(可以不按照规则,详情去百度设置) 2. mysql数据库用户密码字段不再是password 而是authentication_st ...

  6. centos7 Tomcat 停止服务时报错: java.net.ConnectException: 拒绝连接 (Connection refused)

    2021-08-02 1.问题描述 配置完 server.xml 文件后,执行 shutdown.sh 脚本停止服务,出现以下错误 2. 解决方法 查看当前正在运行的 Java 进程号 # 找到 Ja ...

  7. Android App性能测试之adb命令

    本篇文章总结了Android App性能测试过程中常用的adb命令.通过这些adb命令,可以查看App的性能数据,为评判性能好坏作参考. CPU相关 显示占用CPU最大的5个应用 adb shell ...

  8. Mybatis(三)——全局配置文件

    二.properties     三.settings 四.typeAilases 这里不做介绍.

  9. 浅谈 JVM GC 的安全点与安全区域

    OopMap 前文我们说到,JVM 采用的可达性分析法有个缺点,就是从 GC Roots 找引用链耗时. 都说他耗时,他究竟耗时在哪里? GC 进行扫描时,需要查看每个位置存储的是不是引用类型,如果是 ...

  10. AQS学习(二) AQS互斥模式与ReenterLock可重入锁原理解析

    1. MyAQS介绍    在这个系列博客中,我们会参考着jdk的AbstractQueuedLongSynchronizer,从零开始自己动手实现一个AQS(MyAQS).通过模仿,自己造轮子来学习 ...