您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么用Vite+Electron快速構建VUE3桌面應用的實現(xiàn)”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么用Vite+Electron快速構建VUE3桌面應用的實現(xiàn)”吧!
首先,介紹下vite和Electron。
Vite是一種新型前端構建工具,能夠顯著提升前端開發(fā)體驗。由尤大推出,其發(fā)動態(tài)表示“再也回不去webpack了...”
Electron是一個使用 JavaScript、HTML 和 CSS 構建桌面應用程序的框架。 嵌入Chromium和Node.js到二進制的 Electron 允許您保持一個 JavaScript 代碼代碼庫并創(chuàng)建 在Windows上運行的跨平臺應用 macOS和Linux——不需要本地開發(fā) 經(jīng)驗。
當開始想用vue去開發(fā)一個桌面應用時,首先去搜索下,了解到當前如下兩種現(xiàn)成方案:
electron-vue: 該項目集成度較好,封裝較為完整,中文搜索下來文章較多也是該方案,可以直接上手去使用。但是,問題在于其內(nèi)置electron的版本太低,寫文章時看到的版本是2.0.4,而最新的electron版本是15.1.2。
Vue CLI Plugin Electron Builder: 該方案是集成到到vue-cli中使用,使用vue add electron-builder后可直接上手,免去了基礎配置的步驟。但是其只能在vue-cli下使用,無法配合vite來使用。
因此,若要使用vite和electron,還需要自己來配置。
yarn create vite
創(chuàng)建命令如下:
yarn create vite <your-vue-app-name> --template vue
此處創(chuàng)建一個項目,名為kuari。
yarn create vite kuari --template vue
進入項目,在運行前需要先安裝下依賴。
cd kuari yarn install yarn dev
在運行命令敲下的一瞬間,幾乎是已經(jīng)在運行了,不愧是vite。此時按照輸出,打開地址預覽,即可看到初始化頁面。
至此一個基礎的vite項目創(chuàng)建完成。
在Electron官網(wǎng)的快速入門文檔中,有官方給出的利用html、javascript、css來創(chuàng)建一個electron應用的案例,vite+electron的方案也借鑒其中。
首先安裝electron至vite應用。目前electron的版本為^15.1.2,。
yarn add --dev electron
1)vite.config.js
import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import path from 'path' // 新增 // https://vitejs.dev/config/ export default defineConfig({ base: path.resolve(__dirname, './dist/'), // 新增 plugins: [vue()] })
2)main.js
創(chuàng)建一個新的文件main.js,需要注意的是,該內(nèi)容中index.html的加載路徑跟electron官網(wǎng)給的配置不同。
// main.js // 控制應用生命周期和創(chuàng)建原生瀏覽器窗口的模組 const { app, BrowserWindow } = require('electron') const path = require('path') function createWindow () { // 創(chuàng)建瀏覽器窗口 const mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { preload: path.join(__dirname, 'preload.js') } }) // 加載 index.html mainWindow.loadFile('dist/index.html') // 此處跟electron官網(wǎng)路徑不同,需要注意 // 打開開發(fā)工具 // mainWindow.webContents.openDevTools() } // 這段程序?qū)?nbsp;Electron 結束初始化 // 和創(chuàng)建瀏覽器窗口的時候調(diào)用 // 部分 API 在 ready 事件觸發(fā)后才能使用。 app.whenReady().then(() => { createWindow() app.on('activate', function () { // 通常在 macOS 上,當點擊 dock 中的應用程序圖標時,如果沒有其他 // 打開的窗口,那么程序會重新創(chuàng)建一個窗口。 if (BrowserWindow.getAllWindows().length === 0) createWindow() }) }) // 除了 macOS 外,當所有窗口都被關閉的時候退出程序。 因此,通常對程序和它們在 // 任務欄上的圖標來說,應當保持活躍狀態(tài),直到用戶使用 Cmd + Q 退出。 app.on('window-all-closed', function () { if (process.platform !== 'darwin') app.quit() }) // 在這個文件中,你可以包含應用程序剩余的所有部分的代碼, // 也可以拆分成幾個文件,然后用 require 導入。
3)preload.js
創(chuàng)建一個新的文件preload.js。
// preload.js // 所有Node.js API都可以在預加載過程中使用。 // 它擁有與Chrome擴展一樣的沙盒。 window.addEventListener('DOMContentLoaded', () => { const replaceText = (selector, text) => { const element = document.getElementById(selector) if (element) element.innerText = text } for (const dependency of ['chrome', 'node', 'electron']) { replaceText(`${dependency}-version`, process.versions[dependency]) } })
4)package.json
為了確保能夠運行相關electron的命令,需要修改package.json文件。
首先需要去設置main屬性,electron默認會去在開始時尋找項目根目錄下的index.js文件,此處我們使用的是main.js,所以需要去定義下。
// package.json { "name": "kuari", "version": "0.0.0", "main": "main.js", // 新增 "scripts": { "dev": "vite", "build": "vite build", "serve": "vite preview" }, "dependencies": { "vue": "^3.2.16" }, "devDependencies": { "@vitejs/plugin-vue": "^1.9.3", "electron": "^15.1.2", "vite": "^2.6.4" } }
最后我們需要新增electron的運行命令。
// package.json { "name": "kuari", "version": "0.0.0", "main": "main.js", "scripts": { "dev": "vite", "build": "vite build", "serve": "vite preview", "electron:serve": "electron ." // 新增 }, "dependencies": { "vue": "^3.2.16" }, "devDependencies": { "@vitejs/plugin-vue": "^1.9.3", "electron": "^15.1.2", "vite": "^2.6.4" } }
直接在終端輸入如下命令:
yarn electron:serve
接著我們就可以看到我們桌面應用就出來咯!
感謝各位的閱讀,以上就是“怎么用Vite+Electron快速構建VUE3桌面應用的實現(xiàn)”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對怎么用Vite+Electron快速構建VUE3桌面應用的實現(xiàn)這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。