欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

構(gòu)建Vue3桌面應(yīng)用程序的方法

 更新時間:2021年05月21日 10:06:08   作者:前端先鋒  
在項(xiàng)目中會用到 Electron , 一種最流行的框架,可使用Javascript構(gòu)建跨平臺的桌面應(yīng)用程序。在本文中,我們將研究如何通過 Vite 開發(fā) Vue 3 桌面項(xiàng)目,感興趣的可以了解一下

在本文中,我們將研究如何通過 Vite 開發(fā) Vue 3 桌面項(xiàng)目。

在項(xiàng)目中會用到 Electron , 一種最流行的框架,可使用Javascript構(gòu)建跨平臺的桌面應(yīng)用程序。 因此,許多受歡迎的應(yīng)用程序都在使用Electron,例如VSCode,Slack,Twitch等。

先看看要做什么:

盡管這只是一個 Vite 的基本模板,但它跑在專用程序而不是瀏覽器中。 這是構(gòu)建自己的桌面應(yīng)用的必要步驟。

以下是開發(fā)過程。

創(chuàng)建的基本 Vite 程序

首先創(chuàng)建 Vite 應(yīng)用。 在這里不會過多介紹 Vite 的工作原理。

在終端下執(zhí)行以下命令:

npm init @vitejs/app
cd [project-name]
npm install

完成了,先在瀏覽器中試一下。

在終端中簡單的運(yùn)行 npm run dev 命令。然后在瀏覽器中打開本機(jī)地址,可以看到是這樣的:

沒有問題,接著就該把 Electron 添加到它的設(shè)置中了。

在 Vite 項(xiàng)目中添加 Electron

這里按照 Electron 官方的 quick start 在我們的 Vite 應(yīng)用中進(jìn)行一些調(diào)整。

首先安裝 Electron。在終端下輸入以下命令:

Install Electronnpm install --save-dev electron

接著再看一下 Electron 手冊。

手冊上說簡單的 Electron 配置需要四個文件:

  • package.json —— 這個已經(jīng)有了
  • main.js
  • preloader.js
  • index.html

看上去項(xiàng)目中已經(jīng)有了 main.js和index.html文件,但它們是 Vite 的文件,而不是 Electron 的文件。 Vite 的文件只能用于運(yùn)行 Vite 程序,所以還需要提供單獨(dú)的 Electron 文件。

main.js 用于創(chuàng)建桌面程序并加載到 index.html 中,它還應(yīng)該包括我們構(gòu)建的 Vite 程序代碼。

構(gòu)建 Vite 程序

所以首先必須構(gòu)建 Vite 程序。 因?yàn)橐阉c Electron 進(jìn)行整合,所以還需要做一些額外的配置。我們要確保在構(gòu)建項(xiàng)目時,對最終 javascript 和 css 文件的所有引用都指向正確的路徑。

要構(gòu)建的 Vite 項(xiàng)目將會創(chuàng)建以下結(jié)構(gòu)的 dist 目錄。

但是由于我們的 Electron 代碼位于項(xiàng)目的根目錄中,所以應(yīng)該將整個項(xiàng)目的基礎(chǔ)設(shè)置為 dist 文件夾。 可以通過 path 庫在 vite.config.js 文件中設(shè)置 base 屬性來實(shí)現(xiàn)。

//vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
const path = require('path')

// https://vitejs.dev/config/
export default defineConfig({
  base: path.resolve(__dirname, './dist/'),
  plugins: [vue()]
})

現(xiàn)在可以在終端中運(yùn)行 npm run build 來創(chuàng)建 dist 目錄了。

設(shè)置 Electron 的 main.js

下一步是在項(xiàng)目的根目錄中創(chuàng)建 main.js 文件。

創(chuàng)建完畢后我們只需要從 Electron quick start guide 中復(fù)制粘貼代碼就行了。

在我們加載 index.html 的地方,要將其改為 dist/index.html,以便在 dist 目錄中使用該文件。

所以 main.js 中的最終代碼是這樣:

//main.js
const { app, BrowserWindow } = require('electron')
const path = require('path')

function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      preload: path.join(__dirname, 'preload.js')
    }
  })

  win.loadFile('dist/index.html')
}

app.whenReady().then(() => {
  createWindow()

  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow()
    }
  })
})

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

創(chuàng)建并編寫 preload.js.

接下來讓在項(xiàng)目根目錄中創(chuàng)建 preload.js 文件,然后再次使用quick start code,這次不必修改任何內(nèi)容。

//preload.js
window.addEventListener('DOMContentLoaded', () => {
    const replaceText = (selector, text) => {
      const element = document.getElementById(selector)
      if (element) element.innerText = text
    }
  
    for (const type of ['chrome', 'node', 'electron']) {
      replaceText(`${type}-version`, process.versions[type])
    }
})

修改 package.json

差不多快要完成了,最后還需要對 package.json文件進(jìn)行一些修改,以便運(yùn)行 Electron 命令。

首先要設(shè)置 main 屬性,在默認(rèn)情況下,Electron 會在根目錄中查找 index.js 文件并執(zhí)行,但是由于我們的文件名為 main.js,所以需要在 package.json 中定義。

//package.json
{
  "name": "vite-electron",
  "version": "0.0.0",
  "main": "main.js", // 這一行
  ...
}

然后設(shè)置運(yùn)行 Electron 的方式,在 scripts 部分中新創(chuàng)建一個名為electron:start 的腳本,內(nèi)容是electron . 。

//package.json
{
  "name": "vite-electron",
  "version": "0.0.0",
  "main": "main.js",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "serve": "vite preview",
    "electron:start": "electron ." // 這里
  },
  ...
}

以上就是所有的代碼了。

最后在終端中執(zhí)行: npm run electron:start 命令,然后就能看到:

桌面程序終于完成了,很簡單吧~

寫在最后

近期在提升 Vue 的過程中,發(fā)現(xiàn)一個高逼格的 Vue3+TS 教程。 無償分享給掘仔們,戳我看教程

到此這篇關(guān)于構(gòu)建Vue3桌面應(yīng)用程序的方法的文章就介紹到這了,更多相關(guān)Vue3桌面應(yīng)用程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue自定義指令寫法與個人理解

    Vue自定義指令寫法與個人理解

    VUE指令是什么,VUE自定義指令又是什么,下面就和大家分享一下個人對它們的理解
    2019-02-02
  • vue腳手架中配置Sass的方法

    vue腳手架中配置Sass的方法

    本篇文章主要介紹了vue腳手架中配置Sass的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • vue.js入門教程之基礎(chǔ)語法小結(jié)

    vue.js入門教程之基礎(chǔ)語法小結(jié)

    這篇文章我們將學(xué)習(xí)vue.js的基礎(chǔ)語法,對于大家學(xué)習(xí)vue.js具有一定的參考借鑒價值,有需要的朋友們下面來一起看看。
    2016-09-09
  • Vue利用插件實(shí)現(xiàn)打印功能的示例詳解

    Vue利用插件實(shí)現(xiàn)打印功能的示例詳解

    這篇文章主要為大家詳細(xì)介紹了Vue如何利用vue-print-nb插件實(shí)現(xiàn)打印功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)一下
    2023-03-03
  • Vue.js中el-table表格自定義列控制與拖拽

    Vue.js中el-table表格自定義列控制與拖拽

    本文主要介紹了Vue.js中el-table表格自定義列控制與拖拽,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Vue?服務(wù)端渲染SSR示例詳解

    Vue?服務(wù)端渲染SSR示例詳解

    這篇文章主要介紹了Vue?服務(wù)端渲染SSR示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 詳解如何編寫一個Vue3響應(yīng)式系統(tǒng)

    詳解如何編寫一個Vue3響應(yīng)式系統(tǒng)

    這篇文章主要為大家學(xué)習(xí)介紹了如何編寫一個Vue3響應(yīng)式系統(tǒng),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下
    2023-07-07
  • Nuxt引入vue-persistedstate以及踩坑記錄

    Nuxt引入vue-persistedstate以及踩坑記錄

    這篇文章主要介紹了Nuxt引入vue-persistedstate以及踩坑記錄,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue2組件之select2調(diào)用的示例代碼

    vue2組件之select2調(diào)用的示例代碼

    本篇文章主要介紹了vue2組件之select2調(diào)用的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • vue radio單選框,獲取當(dāng)前項(xiàng)(每一項(xiàng))的value值操作

    vue radio單選框,獲取當(dāng)前項(xiàng)(每一項(xiàng))的value值操作

    這篇文章主要介紹了vue radio單選框,獲取當(dāng)前項(xiàng)(每一項(xiàng))的value值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09

最新評論