Vue和React中快速使用Electron的簡(jiǎn)單教程
提示:
本篇文章只是教你簡(jiǎn)單上手,Electron本身功能是非常強(qiáng)大的,這里邊的結(jié)合,只是能讓你簡(jiǎn)單實(shí)現(xiàn)一個(gè)桌面應(yīng)用程序!如需要復(fù)雜的配置electron,建議去參考官網(wǎng)~
前言
對(duì)于我們來(lái)說(shuō)Electron相當(dāng)于一個(gè)殼子,可以把寫(xiě)好的網(wǎng)頁(yè)程序嵌入到殼子里面,可以運(yùn)行在桌面上的一個(gè)程序,可以把網(wǎng)頁(yè)打包成一個(gè)在桌面應(yīng)用程序,也類(lèi)似我們平時(shí)做的套殼打包的5+app,簡(jiǎn)單來(lái)說(shuō)就是軟件,Electron非常出名的就是Vscode,想要深入了解可以查看官網(wǎng)的詳細(xì)介紹。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、前提
Electron使用的前提是需要配備nodejs環(huán)境,所以請(qǐng)檢查你的電腦是否安裝了nodejs環(huán)境 可以在cmd或者powerShell使用node -v查看

二、在Vue和React中快速使用
提示:需在Vue和React打包成功的文件目錄下!
完整配置的文件,我這邊上傳了gitee, 把文件復(fù)制粘貼進(jìn)去直接npm i就可以?。旱刂?XLL/electron打包
1. 安裝Electron
- 在打包后的根目錄下
npm init否則下一步安裝的Electron可能會(huì)安裝到外層vue項(xiàng)目里 - 在dist文件夾內(nèi)創(chuàng)建 main.js 文件及 package.json 文件
以下為main.js內(nèi)容,可復(fù)制粘貼進(jìn)去,以下為最簡(jiǎn)單的electron配置,如想要復(fù)雜的配置,可以去參考一下官網(wǎng)配置
const {
app,
BrowserWindow,
Menu
} = require('electron'); // 引入electron
let win;
let windowConfig = {
minWidth: 1600, //最小寬度
minHeight: 800, //最小高度
show: false,
resizable: false
// frame: false,
// fullscreen: false,
// titleBarStyle: 'hiddenInset',
// titleBarOverlay: true
}; //窗口配置程序運(yùn)行窗口的大小
function createWindow() {
win = new BrowserWindow(windowConfig); //創(chuàng)建一個(gè)窗口
win.loadURL(`file://${__dirname}/index.html`); //在窗口內(nèi)要展示的內(nèi)容index.html 就是打包生成的index.html
// win.webContents.openDevTools(); //開(kāi)啟調(diào)試工具
// 隱藏菜單欄
Menu.setApplicationMenu(null)
// 默認(rèn)最大化
win.maximize()
win.show()
win.on('close', () => {
//回收BrowserWindow對(duì)象
win = null;
});
win.on('resize', () => {
// 默認(rèn)刷新
// win.reload();
})
}
app.on('ready', createWindow);
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
app.on('activate', () => {
if (win == null) {
createWindow();
}
});
// electron限制只能打開(kāi)一個(gè)應(yīng)用窗口,在有窗口的情況下喚起窗口。
const gotTheLock = app.requestSingleInstanceLock()
if (!gotTheLock) {
app.quit()
} else {
app.on('second-instance', (event) => {
if (win) {
if (win.isMinimized()) win.restore()
win.focus()
}
})
app.on('ready', () => {
// createWindow()
const {
Menu
} = require('electron')
Menu.setApplicationMenu(null) // 隱藏菜單欄
})
}package.json中修改,可以把下邊的直接復(fù)制粘貼進(jìn)去,electron限定了版本號(hào),下邊的復(fù)制粘貼進(jìn)去后,在dist根目錄下cmd執(zhí)行
npm i下載,如果你的版本號(hào)和我這邊的有出入,可能打包失??!
{
"name": "xxx",
"productName": "XXXXX",
"author": "小叮當(dāng)",
"version": "1.0.0",
"main": "main.js",
"description": "項(xiàng)目描述",
"scripts": {
"pack": "npx electron-builder --dir",
"dist": "npx electron-builder",
"postinstall": "npx electron-builder install-app-deps",
"start": "npx electron .",
"package": "npx electron-packager . relay --platform=win32 --arch=x64 --icon=favicon.ico --out=./out --asar --app-version=1.0.0 --overwrite --ignore=node_modules"
},
"build": {
"electronVersion": "1.8.4",
"win": {
"requestedExecutionLevel": "highestAvailable",
"target": [
{
"target": "nsis",
"arch": [
"x64"
]
}
]
},
"appId": "demo",
"artifactName": "demo-${version}-${arch}.${ext}",
"nsis": {
"artifactName": "demo-${version}-${arch}.${ext}"
},
"extraResources": [
{
"from": "./static/",
"to": "app-server",
"filter": [
"**/*"
]
}
],
"publish": [
{
"provider": "generic"
}
]
},
"dependencies": {
"core-js": "^2.4.1",
"create-egg": "^2.0.1",
"electron": "^16.2.6",
"electron-builder": "^22.14.13",
"electron-package": "^0.1.0",
"electron-packager": "^12.1.0",
"electron-updater": "^2.22.1"
}
}- 執(zhí)行命令:
npm run start

執(zhí)行成功,效果如下:(博主這里啥也沒(méi)寫(xiě),如果你寫(xiě)了的話,運(yùn)行的界面應(yīng)和你寫(xiě)的一致)

2. 運(yùn)行成功后,打包成軟件
執(zhí)行命令: npm run package


注意:我這里啥也沒(méi)寫(xiě)所以是空的,你打包之后要是空的就是有問(wèn)題啦!

總結(jié)
到此這篇關(guān)于Vue和React中快速使用Electron的文章就介紹到這了,更多相關(guān)Vue React使用Electron內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Electron+React進(jìn)行通信的方法
- Electron整合React使用搭建開(kāi)發(fā)環(huán)境的步驟詳解
- 詳解使用webpack+electron+reactJs開(kāi)發(fā)windows桌面應(yīng)用
- 使用Electron構(gòu)建React+Webpack桌面應(yīng)用的方法
- vue?+?electron應(yīng)用文件讀寫(xiě)操作
- 用electron打包vue項(xiàng)目中的報(bào)錯(cuò)問(wèn)題及解決
- 如何用electron把vue項(xiàng)目打包為桌面應(yīng)用exe文件
- Electron集成React和Vue流程方法講解
相關(guān)文章
element?el-tooltip實(shí)現(xiàn)自定義修改樣式
本文主要介紹了element?el-tooltip實(shí)現(xiàn)自定義修改樣式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
watch(監(jiān)視屬性)和computed(計(jì)算屬性)的區(qū)別及實(shí)現(xiàn)案例
watch和computed是vue實(shí)例對(duì)象中的兩個(gè)重要屬性,watch是監(jiān)視屬性,用來(lái)監(jiān)視vue實(shí)例對(duì)象上屬性和方法的變化,computed被稱(chēng)為計(jì)算屬性,可以將data對(duì)象中的屬性進(jìn)行計(jì)算得到新的屬性,這篇文章主要介紹了watch(監(jiān)視屬性)和computed(計(jì)算屬性)的區(qū)別,需要的朋友可以參考下2023-05-05
vuex2中使用mapGetters/mapActions報(bào)錯(cuò)的解決方法
這篇文章主要介紹了vuex2中使用mapGetters/mapActions報(bào)錯(cuò)解決方法 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-10-10
vue實(shí)現(xiàn)移動(dòng)端div拖動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)移動(dòng)端div拖動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Vue中使用element-ui給按鈕綁定一個(gè)單擊事件實(shí)現(xiàn)點(diǎn)擊按鈕就彈出dialog對(duì)話框
最近遇到了個(gè)需求是使用element-ui插件編寫(xiě)頁(yè)面,點(diǎn)擊按鈕,彈出對(duì)話框,這篇文章主要給大家介紹了關(guān)于Vue中使用element-ui給按鈕綁定一個(gè)單擊事件實(shí)現(xiàn)點(diǎn)擊按鈕就彈出dialog對(duì)話框的相關(guān)資料,需要的朋友可以參考下2022-11-11
詳解vue3.2新增的defineCustomElement底層原理
本文主要介紹了vue3.2新增的defineCustomElement底層原理,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
elementplus el-table(行列互換)轉(zhuǎn)置的兩種方法
本文主要介紹了elementplus el-table(行列互換)轉(zhuǎn)置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06

