vux桌面端:Electron集成开发
【免费下载链接】vux Mobile UI Components based on Vue & WeUI 项目地址: https://gitcode.com/gh_mirrors/vu/vux
Vux是基于Vue和WeUI的移动端UI组件库,主要面向移动端开发。但通过Electron框架,可将Vux项目打包为跨平台桌面应用,兼顾移动端组件优势与桌面应用体验。本文将详细介绍实现流程,解决环境配置、组件适配、打包优化等核心问题。
环境准备与依赖分析
系统要求
- Node.js 7.6.0+(Vux构建要求)
- npm 3.0.0+
- Git
项目依赖检查
Vux package.json显示其核心依赖包括Vue 2.5.16、vux-loader 1.2.9及Webpack 3.8.1,这些工具链可与Electron协同工作。需补充Electron相关依赖:
npm install electron electron-builder --save-dev
目录结构规划
推荐在Vux项目根目录创建Electron专用目录:
vux/
├── electron/ # Electron主进程代码
│ ├── main.js # 入口文件
│ └── preload.js # 渲染进程注入脚本
├── src/ # 原Vux业务代码
├── dist/ # 构建输出目录
└── package.json # 添加Electron脚本
核心实现步骤
1. 搭建Electron基础框架
创建electron/main.js作为窗口管理器:
const { app, BrowserWindow } = require('electron')
const path = require('path')
function createWindow () {
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
nodeIntegration: false, // 安全最佳实践
contextIsolation: true
}
})
// 加载Vux构建产物
mainWindow.loadFile(path.join(__dirname, '../dist/index.html'))
// 开发模式下加载本地服务器
// mainWindow.loadURL('http://localhost:8080')
}
app.whenReady().then(() => {
createWindow()
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') app.quit()
})
2. Vux组件桌面端适配
生成UMD格式组件
Vux 2.0+需手动生成UMD组件文件,执行:
git clone https://gitcode.com/gh_mirrors/vu/vux --depth=1
cd vux
npm install
npm run build-components # 生成dist/components
生成文件结构:
dist/
├── components/ # 按组件拆分的UMD文件
│ ├── cell/
│ │ ├── index.min.js
│ │ └── index.min.css
└── styles/ # 工具样式
├── 1px.css
└── reset.css
组件尺寸适配方案
Electron窗口默认缩放可能导致移动端组件过小,在preload.js中添加:
// 调整根字体大小实现缩放
document.addEventListener('DOMContentLoaded', () => {
const scale = window.screen.width / 375 // 以375px设计稿为基准
document.documentElement.style.fontSize = `${16 * scale}px`
})
构建与打包配置
修改package.json
添加Electron相关脚本和配置:
{
"main": "electron/main.js",
"scripts": {
"electron:dev": "npm run dev & electron .",
"electron:build": "npm run build && electron-builder"
},
"build": {
"appId": "com.example.vux-desktop",
"files": [
"dist/**/*",
"electron/**/*"
],
"win": {
"target": "nsis"
},
"mac": {
"target": "dmg"
}
}
}
资源路径处理
确保Vux构建产物路径正确,修改Webpack输出配置:
// build/webpack.prod.conf.js
output: {
path: path.resolve(__dirname, '../dist'),
publicPath: './', // 改为相对路径
filename: 'js/[name].[chunkhash].js'
}
常见问题解决方案
1. 原生模块兼容问题
部分Vux依赖可能需要Electron重建:
npm install electron-rebuild --save-dev
./node_modules/.bin/electron-rebuild
2. 窗口菜单隐藏
在main.js中添加:
mainWindow.setMenu(null) // 隐藏默认菜单
3. 开发热重载配置
安装electron-reload实现代码热更新:
npm install electron-reload --save-dev
在main.js头部添加:
require('electron-reload')(__dirname, {
electron: path.join(__dirname, '../node_modules/.bin/electron')
})
效果展示与项目结构
最终目录结构
vux/
├── electron/
│ ├── main.js # 窗口管理
│ └── preload.js # 注入脚本
├── src/ # Vux业务代码
├── dist/ # 构建产物
└── package.json # 配置文件
运行效果
总结与扩展方向
通过Electron集成,Vux实现了"一次开发,多端部署"。关键步骤包括:环境检查→UMD组件生成→尺寸适配→打包配置。后续可探索:
- 使用vuex-electron实现状态持久化
- 集成node-ffi调用系统API
- 通过electron-updater实现自动更新
完整项目示例可参考Vux官方UMD示例,更多Electron API请查阅官方文档。
点赞+收藏本文,关注获取Electron性能优化进阶教程。
【免费下载链接】vux Mobile UI Components based on Vue & WeUI 项目地址: https://gitcode.com/gh_mirrors/vu/vux
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




