从零开始搭建Electron+Vue+Webpack项目框架,一套代码,同时构建客户端、web端(一)

本文介绍了如何从零开始搭建一个基于Electron6.x、Webpack4和Vue的项目框架,实现一套代码同时应用于客户端和Web端。通过详细步骤,包括初始化项目、设置窗口配置、处理 Electron 应用的生命周期,以及解决启动过程中的问题,作者引导读者逐步掌握全栈开发。项目完整代码已上传至GitHub,供读者参考和指正。
摘要由CSDN通过智能技术生成

摘要:随着前端技术的飞速发展,越来越多的技术领域开始被前端工程师踏足。从NodeJs问世至今,各种前端工具脚手架、服务端框架层出不穷,“全栈工程师”对于前端开发者来说,再也不只是说说而已。在NodeJs及其衍生技术高速发展的同时,Nw和Electron的问世,更是为前端发展提速不少,依稀记得哪位前辈说过,“能用Js改写的,终将用Js改写”,这不,客户端来了!使用Electron也有一段时间了,各种简单复杂的问题,也都或多或少的遇见过,下决心整理出一套客户端模板出来,一是加深一下自己的理解,二是供小伙伴们参考指正。本文选择Electron6.x+Webpack4+vue全家桶为技术栈,一套代码可以分别打包在客户端和web端,结合webpack,支持热更新,打包为exe安装包,过程中会涉及vue全家桶、electron的常见问题、配置和优化,webpack的对应配置等。从零开始,把electron、vue、webpack统统纳入自己的知识体系!项目完整代码:https://github.com/luohao8023/electron-vue-template

说明:本着模拟从零开始的过程,最开始的架构或者代码设计可能不是最优解,有可能只适用于当前情况,后续会一步步完善,也可能会部分重构,关键是体会这个从零到一,再到完善的过程。

下面开始~~~

一、新建工程

  1、说好的从零开始,就从新建文件夹开始吧,新建electron-vue-template文件夹。

  2、cmd进入文件夹,执行npm init,初始化一个node项目。

  3、完善工程目录结构:

  项目根目录的结构大致就是上面这个样子,后续完善过程中,会在对应目录下增加相应的子目录,后面会有讲到。下面介绍一下各个目录的作用:

    app:webpack编译后的整个项目的代码,包

1. 首先需要安装Node.js和npm。 2. 创建一个空文件夹,并进入文件夹。 3. 在命令行中输入以下命令,初始化一个新的npm项目: ``` npm init -y ``` 4. 安装electron: ``` npm install electron --save-dev ``` 5. 安装vue: ``` npm install vue ``` 6. 安装vue-cli: ``` npm install -g @vue/cli ``` 7. 创建一个新的Vue项目: ``` vue create my-project ``` 8. 进入Vue项目的根目录,安装必要的依赖: ``` cd my-project npm install --save-dev electron-builder vue-cli-plugin-electron-builder ``` 9. 创建一个新的electron主进程文件: ``` mkdir src/electron touch src/electron/index.js ``` 10. 在`src/electron/index.js`中添加以下内容: ```javascript const { app, BrowserWindow } = require('electron') function createWindow () { // 创建浏览器窗口 const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, contextIsolation: false, } }) // 加载应用的 index.html win.loadFile('dist/index.html') // 打开开发者工具 win.webContents.openDevTools() } // Electron 会在初始化完成并准备好创建浏览器窗口时调用这个方法 // 部分 API 在 ready 事件触发后才能使用。 app.whenReady().then(createWindow) // 当全部窗口关闭时退出。 app.on('window-all-closed', () => { // 在 macOS 上,除非用户用 Cmd + Q 确定地退出, // 否则绝大部分应用及其菜单栏会保持活动状态。 if (process.platform !== 'darwin') { app.quit() } }) app.on('activate', () => { // 在macOS上,当单击 dock 图标并且没有其他窗口打开时, // 通常在应用程序中重新创建一个窗口。 if (BrowserWindow.getAllWindows().length === 0) { createWindow() } }) ``` 11. 修改`package.json`文件,添加以下内容: ```json "main": "src/electron/index.js", "scripts": { "electron:serve": "vue-cli-service electron:serve", "electron:build": "vue-cli-service electron:build" }, "build": { "productName": "My App", "appId": "com.example.myapp", "directories": { "output": "dist_electron" }, "files": [ "dist/**/*", "src/electron/**/*" ], "extends": null, "extraResources": null }, "devDependencies": { "electron": "^13.2.1", "electron-builder": "^22.11.7", "vue-cli-plugin-electron-builder": "^2.0.0-rc.6" } ``` 12. 在命令行中运行以下命令,启动electron应用: ``` npm run electron:serve ``` 13. 如果一切正常,electron应用将会启动并显示出Vue应用的界面。现在可以开始开发Electron + Vue应用了。若要打包应用,请运行以下命令: ``` npm run electron:build ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值