当前位置: 首页 > news >正文

electron + express 实现 vue 项目客户端部署

写在前面

作为一个前端程序员,如何实现从前端到客户端的跨越,可能是一个很难实现的事。但客户需求千奇百怪,偶尔遇到一个非要客户端的,如何应对?

那Electron可能真是你福音。具体它有哪些功能,可自行官网查看:Build cross-platform desktop apps with JavaScript, HTML, and CSS | Electron。这里只谈一谈最近项目中遇到的一种情况:将已有的vue项目打包成客户端

1.创建electron 项目

首先创建一个electron项目:快速入门 | Electron。

这里直接使用了脚手架: GitHub - electron/electron-quick-start: Clone to try a simple Electron app。

也可以根据官网自己搭建。

执行以下命令安装 脚手架 :

npm install 

如果安装过程中卡住,可尝试设置以下环境变量

ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"
npm run start 启动

2.创建express项目

为什么要用express 框架?其实直接启动electron+vue的dist包,静态部署也可以。需要的参考这个Electron学习记录(二)-在Electron中使用vue3_electron使用vue-CSDN博客

但项目中一般都以服务的形式部署,静态部署多少有些资源读取的问题。这里增加了express框架,轻量,方便。

初始化express项目

使用express-generator搭建

npm install express-generator -g
express express-project
创建一个名为express-project的项目

把项目整体放到electron项目的根目录。

3.修改配置,打包启动

(1)在main.js 增加express 启动项目,基本可以理解为把exprss-project项目下bin/www的内容迁移打main.js中。

(2)将vue项目的dist包放到exprss-project项目下,比如public目录下。

打包前记得修改.env.production 文件中的后端接口配置,例如:

VUE_APP_BASE_API = '/prod-api'

改为以下形式:

VUE_APP_BASE_API = 'http://{ip}:{port}/prod-api'

(3)修改exprss-project项目下bin/app.js 内容

OK。执行,不出意外的,会自动启动客户端了。

(4)最后一步,打包成软件

package.json中添加

  "scripts": {"start": "electron .","packager": "electron-packager ./ my-app --platform=win32 --arch=x64 --out=out --icon=assets/app.ico --asar --overwrite --ignore=.git"},

执行npm run packager,打包成软件。

这样基本实现了vue项目的客户端化,当然,别忘了起后端服务。

http://www.lryc.cn/news/397592.html

相关文章:

  • 千万慎投!自引率高达93%!这16本On hold正处于高危状态,无法检索,剔除岌岌可危中!近四年镇压期刊“出狱”情况一览
  • 【数据结构】排序——快速排序
  • Matlab 怎么查找矩阵中所有0的数据并赋值
  • 开发一个HTTP模块
  • vue2实现复制,粘贴功能,使用vue-clipboard2插件
  • 【软件测试】 1+X初级 功能测试试题
  • zynq启动和程序固化流程
  • CSS3实现彩色变形爱心动画【附源码】
  • 【JVM基础篇】Java的四种垃圾回收算法介绍
  • Kodcloud可道云安装与一键发布上线实现远程访问详细教程
  • python杨辉三角的两种书写方式
  • 【CSS in Depth 2精译】2.5 无单位的数值与行高
  • 【人脸识别、Python实现】PyQt5人脸识别管理系统
  • 软设之观察者模式
  • deep learning 环境配置
  • 09磁盘管理
  • Node.js Stream
  • 简化嵌入式Linux开发:在Ubuntu上安装和配置交叉编译环境的高效方法
  • Photoshop批量处理图片分辨率
  • TCP协议的三次握手和四次挥手(面试)
  • css看见彩虹,吃定彩虹
  • springboot在线教育平台-计算机毕业设计源码68562
  • 形态学图像处理
  • 安泰电压放大器的选型方案是什么
  • ARMV8安全特性:Pointer Authentication
  • MySQL和Redis更新一致性问题
  • (19)夹钳(用于送货)
  • 安装lap和cython_bbox失败了很多次!!!终于被我发现了!
  • 异业联盟整合各大行业门店,共享资源
  • 前端如何去看蓝湖