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项目的客户端化,当然,别忘了起后端服务。

相关推荐
এ慕ོ冬℘゜9 分钟前
JS 前端基础高频面试题
开发语言·前端·javascript
放下华子我只抽RuiKe512 分钟前
React 从入门到生产(八):测试与部署
前端·javascript·深度学习·react.js·前端框架·ecmascript·集成学习
蜡笔小电芯19 分钟前
【Electron】第2章—BrowserWindow 与 Electron 窗口机制
前端·javascript·electron
zhangxingchao23 分钟前
AI 大模型面试核心二:微调、RAG、MCP、Agent 与工程落地
前端·人工智能·后端
ZC跨境爬虫24 分钟前
跟着 MDN 学CSS day_15:(掌握CSS背景与边框的创造性用法)
前端·css·ui·html·tensorflow
zhangxingchao25 分钟前
AI 大模型面试核心三: RAG、Agent 到 Prompt Engineering 的工程化理解
前端·人工智能·后端
Hilaku27 分钟前
从 15MB 减到 800KB,一行 ffmpeg 解决3D 渲染卡顿问题
前端·javascript·程序员
彦为君28 分钟前
JavaSE-11-ByteBuffer(NIO核心组件)
java·开发语言·前端·数据库·后端·spring·nio
丁劲犇32 分钟前
使用TraeAI开发Web页面测试MSYS2 ucrt64 Qt MCP服务器
服务器·前端·c++·qt·mcp
刀法如飞33 分钟前
《理解道德经》简单版-第 1 章:道可道,非常道
前端·后端·面试