
用 VuePack Electron 打造跨平台桌面应用热重载在桌面端也能生效【免费下载链接】vuepack:package: A modern starter which uses Vue 2, Vuex, Vue-router and Webpack 2 (and even Electron)项目地址: https://gitcode.com/gh_mirrors/vu/vuepackVuePack 是一个开箱即用的 Vue.js 现代化启动器内置 Vue 2、Vuex、Vue-router 与 Webpack 2并可选启用 Electron 支持。借助 VuePack Electron 的组合你可以用一套代码同时开发 Web 应用和跨平台桌面应用而且热重载Hot Reloading在桌面端窗口里同样生效——改完代码桌面应用窗口会即时刷新无需手动重启。VuePack 是什么为什么适合做桌面应用 VuePack 的定位是「小而精」的前端脚手架Vue 2 / Vue-router / Vuex全家桶默认集成并自动同步路由与状态单文件组件热重载这是桌面端开发体验的关键按需生成ESLint、JSX、TestCafe、CSS Modules、Electron都是可选项离线可用的 PWA 支持Electron 桌面应用天然离线运行项目特性总览见 README.md功能列表在第 14 行起逐项列出。三步生成带 Electron 支持的项目 ⚡前提安装node 10与npm 6。# 全局安装 SAO 脚手架工具 npm i -g sao jstransformer-handlebars # 使用 VuePack 模板创建新项目也可 clone 仓库https://gitcode.com/gh_mirrors/vu/vuepack sao vuepack my-desktop-app cd my-desktop-app npm install创建过程中交互提示会依次询问是否启用 ESLint、JSX、Electron、TestCafe。这些问题定义在 saofile.js 中其中Support Electron?回答yes是启用桌面端能力的关键开关——它会自动把 Electron 依赖和相关脚本写入项目。 提示Windows 用户建议先安装带 unix tools 的 Git可避免脚本运行问题见 README.md。开发模式两条命令启动桌面应用 ️启用 Electron 后开发流程和普通 Web 应用略有不同完整说明见 docs/electron.md# 终端 1启动开发服务器与普通应用一致 npm run dev # 终端 2启动 Electron 桌面窗口 npm run appnpm run app这条脚本定义在 template/package.json它会以NODE_ENVdevelopment环境启动 Electron指向app/目录下的入口文件。热重载为什么在桌面端也能生效这是很多新手疑惑的点。秘密在 Electron 入口文件 template/app/index.js 中开发模式桌面窗口加载的是http://localhost:4000也就是npm run dev启动的 Webpack 开发服务器生产模式窗口才加载打包后的本地文件file://…/dist/index.html由于窗口渲染的始终是开发服务器的页面Webpack Dev Server 的 Hot Module ReplacementHMR自然就在 Electron 窗口中生效。客户端侧的热重载接入代码在 template/client/dev-client.js仅两行 import 就完成了开发服务器客户端与 HMR 的挂载。开发体验还有两处加分项见 template/app/index.js自动打开DevTools调试面板通过electron-devtools-installer一键安装Vue.js DevTools可直接查看组件树与 Vuex 状态目录结构比纯 Web 应用多了一个 app/ 文件夹 启用 Electron 后项目会多出一个app/目录且打包产物路径从./dist变为./app/dist详见 README.md目录作用app/仅 Electron 模式存在存放桌面端入口app/index.jsElectron 主进程入口创建窗口、加载页面app/dist/Electron 模式下存放打包产物client/客户端源码组件、路由、store与 Electron 共用build/Webpack 配置与开发服务器脚本client/下的组件、路由、store 与纯 Web 应用完全一致例如 template/client/components/App.vue 和 template/client/router/index.js这意味着 Web 端与桌面端共用同一套业务代码。生产构建与发布 # 构建生产版本 npm run build构建后Electron 窗口改为加载本地的file://…/dist/index.html不再依赖开发服务器这也是桌面应用能离线运行的原因。⚠️新手常见坑Electron 模式下如果直接在浏览器打开http://localhost:4000会遇到require is not defined之类的报错。因为 Webpack 使用了electron-renderer目标electron等原生模块不会被 browserify页面只能在 Electron 窗口中运行——这不是 bug请回到「两条命令启动」的方式开发。小结 ✨VuePack 用最小的学习成本把 Vue 2 生态与 Electron 串联起来sao vuepack生成项目时勾选 Electron 支持npm run devnpm run app双终端开发热重载在桌面窗口中实时生效npm run build打出可离线运行的桌面产物想深入了解各可选能力可以浏览官方文档目录Electron、PWA 离线支持、JSX 组件、CSS Modules 与 ESLint 配置。【免费下载链接】vuepack:package: A modern starter which uses Vue 2, Vuex, Vue-router and Webpack 2 (and even Electron)项目地址: https://gitcode.com/gh_mirrors/vu/vuepack创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考