最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Electron+Vite快速構(gòu)建Vue3桌面應用

 更新時間:2023年07月02日 09:51:59   作者:麥忙  
這篇文章主要介紹了如何基于Electron和Vite快速構(gòu)建Vue3桌面應用,本文主要技術(shù)棧就是Vue3、vite、Electron,文中有詳細的代碼示例,需要的朋友可以參考下

前言

隨之Vite的不斷地受歡迎,大家應該都在使用了,最近公司需要開發(fā)一個桌面的視頻播放器,這就涉及到了Electron,它可以幫助我們快速的開發(fā)一個桌面級別的應用,下面是我搭建的基本架子,主要技術(shù)棧就是Vue3 vite Electron

創(chuàng)建應用

我們利用Vite 構(gòu)建Vue3項目,直接一行命令, 我這里選擇yarn,當然npm pnpm這些都是可以的,看自己習慣了

# yarn yarn create vite electron-demo --template vue

進入項目下載依賴,運行項目

// 進入項目
cd electron-demo
// 下載依賴
yarn
// 運行項目
yarn dev

這些都是比較熟悉的!不出意外的項目啟動成功

下載Electron

正菜來了,正事開啟踩坑之旅

yarn add electron

由于國內(nèi)下載Electron 是無法下載,要么報錯,要么就是卡住不動,解決辦法如下 將Electron設置國內(nèi)鏡像后,可以加快文件的下載速度,下面是 electron的國內(nèi)鏡像設置。

pnpm config set electron_mirror=https://npm.taobao.org/mirrors/electron/
pnpm config set electron_builder_binaries_mirror=https://npm.taobao.org/mirrors/electron-builder-binaries/

配置

修改package.json

  • 首先在根目錄新建 electron / index.js

 

這里存放的就是Electron的主進程文件,方便后期管理,里面的具體配置大家可以去ELectron 官網(wǎng)了解

// electron / index.js
import { app, BrowserWindow } from 'electron';
import { join } from 'path'
const createdWindow = () => {
  const win = new BrowserWindow({
    width:900,
    height:600,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation:false,
    }
  })
}
app.whenReady().then(createdWindow)
  • 配置vite-plugin-electron插件需要進行打包編譯的文件入口。

yarn add vite-plugin-electron -D

打開vite.config.js引入執(zhí)行配置,將入口文件寫入,就是我們剛剛新建的主線程文件

import { app, BrowserWindow } from 'electron';
import { join } from 'path'
const createdWindow = () => {
  const win = new BrowserWindow({
    width:900,
    height:600,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation:false,
    }
  })
  if(process.env.VITE_DEV_SERVER_URL){
    win.loadURL(process.env.VITE_DEV_SERVER_URL)
  }else {
    win.loadFile(join(__dirname,'index.html'))
  }
}
app.whenReady().then(createdWindow)
  • 運行項目 yarn dev

我們可以看到新增一個文件夾,這里就是編譯過后的主線程的代碼,同時會有一個報錯

由于electron主進程是使用的node環(huán)境,而默認情況下,Node.js 使用的是 CommonJS 模塊規(guī)范,而 import 語句屬于 ECMAScript 模塊規(guī)范,兩者不兼容。所以需要使用編譯為 CommonJS 規(guī)范的dist-electron/main.js作為main屬性的入口文件,否則會報es6語法錯誤。

這個時候我們將packjson中的type字段去除,將入口文件改為dist-electron/main.js

{
  "name": "electorn-demo",
  "private": true,
  "version": "0.0.0",
  "main": "dist-electron/index.js",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  },
  "dependencies": {
    "vue": "^3.2.47"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^4.1.0",
    "electron": "^25.1.0",
    "vite": "^4.3.9",
    "vite-plugin-electron": "^0.11.2"
  }
}

這個時候我們就能看到一個桌面級別的成品了

  • 終斷亂碼

接下來還會存在一個問題就是主進程里在終斷打印中文亂碼的問題,這里提供一個解決辦法

解決辦法

chcp 65001 是 Windows 系統(tǒng)下的一個命令,用于將控制臺的代碼頁設置為 UTF-8 編碼。在默認情況下,Windows 控制臺使用的是 GBK 或者其他本地編碼,導致在控制臺中輸出中文等非 ASCII 字符時可能會出現(xiàn)亂碼。 使用 chcp 65001 命令可以將控制臺的代碼頁設置為 UTF-8 編碼,以便正確顯示中文等非 ASCII 字符。

打包Electron

需要安裝electron-builder cross-env

yarn add electron-builder cross-env -D

修改packjsons的文件

"build": "vite build && electron-builder"

修改electron/index.js,讓打包后的軟件可以正確加載

import { app, BrowserWindow } from 'electron';
import { join } from 'path'
const createdWindow = () => {
  const win = new BrowserWindow({
    width:900,
    height:600,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation:false,
    }
  })
  if(process.env.NODE_ENV !='development'){
    win.loadFile(join(__dirname,'../dist/index.html'))
  }else {
    win.loadURL(process.env.VITE_DEV_SERVER_URL)
  }
}
app.whenReady().then(createdWindow)

最后一步:將下面代碼復制到packjson.json 文件中

"build": {
    "appId": "com.my-website.my-app",
    "productName": "MyApp",
    "copyright": "Copyright ? 2021 kuari",
    "mac": {
      "category": "public.app-category.utilities"
    },
    "nsis": {
      "oneClick": false,
      "allowToChangeInstallationDirectory": true
    },
    "files": [
      "dist/**/*",
      "dist-electron/**/*"
    ],
    "directories": {
      "buildResources": "assets",
      "output": "release/"
    }
  }

成果

執(zhí)行yarn build就會看到文件根目錄新增了一個我們設置的release文件,里面存放的就是我們的軟件,點擊安裝后就大公告成了

這就是基本的搭建了,后面可能會繼續(xù)更新electron的相關(guān)知識!!!

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

相關(guān)文章

  • 一起來學習Vue的組件化

    一起來學習Vue的組件化

    這篇文章主要為大家詳細介紹了Vue的組件化,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Vue3.5 新特性useTemplateRe的使用小結(jié)

    Vue3.5 新特性useTemplateRe的使用小結(jié)

    Vue3.5的useTemplateRef革新了模板引用方式,解決了傳統(tǒng)ref在類型安全、拼寫檢查和動態(tài)綁定上的痛點,這一組合式函數(shù)允許直接聲明ref變量并自動與模板綁定,下面就來詳細的介紹一下如何使用
    2026-01-01
  • 詳解windows下vue-cli及webpack 構(gòu)建網(wǎng)站(二)導入bootstrap樣式

    詳解windows下vue-cli及webpack 構(gòu)建網(wǎng)站(二)導入bootstrap樣式

    這篇文章主要介紹了詳解windows下vue-cli及webpack 構(gòu)建網(wǎng)站(二)導入bootstrap樣式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 使用vue3.2實現(xiàn)多頁簽導航

    使用vue3.2實現(xiàn)多頁簽導航

    這篇文章主要為大家詳細介紹了如何使用vue3.2 + elementPlus + pinia 實現(xiàn)多頁簽導航,文中的示例代碼講解詳細,有需要的小伙伴可以參考一下
    2023-12-12
  • vue3實現(xiàn)對自定義組件自由拖動效果

    vue3實現(xiàn)對自定義組件自由拖動效果

    在數(shù)據(jù)可視化看板開發(fā)中,組件的自由拖拽功能能極大提升交互體驗,本文將基于Vue3生態(tài),從零開始解析如何實現(xiàn)一個支持自由拖拽的容器組件,感興趣的朋友一起看看吧
    2025-04-04
  • vue實現(xiàn)下拉菜單樹

    vue實現(xiàn)下拉菜單樹

    這篇文章主要為大家詳細介紹了vue實現(xiàn)下拉菜單樹,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • vue 獲取元素額外生成的data-v-xxx操作

    vue 獲取元素額外生成的data-v-xxx操作

    這篇文章主要介紹了vue 獲取元素額外生成的data-v-xxx操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • vue異步axios獲取的數(shù)據(jù)渲染到頁面的方法

    vue異步axios獲取的數(shù)據(jù)渲染到頁面的方法

    今天小編就為大家分享一篇vue異步axios獲取的數(shù)據(jù)渲染到頁面的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • vue面包屑組件的封裝方法

    vue面包屑組件的封裝方法

    這篇文章主要為大家詳細介紹了vue面包屑組件的封裝方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 使用Vue構(gòu)建可重用的分頁組件

    使用Vue構(gòu)建可重用的分頁組件

    分頁組件在web項目中是十分常見的組件,讓我們使用Vue構(gòu)建可重用的分頁組件,關(guān)于基本結(jié)構(gòu)和相關(guān)事件監(jiān)聽大家參考下本文
    2018-03-03

最新評論

灌阳县| 塔城市| 钟祥市| 清水河县| 苍溪县| 健康| 达州市| 卫辉市| 石嘴山市| 阿拉善左旗| 白山市| 阜平县| 资讯 | 明溪县| 滨州市| 牙克石市| 汉寿县| 中牟县| 当涂县| 伽师县| 稻城县| 达孜县| 铁力市| 新泰市| 宜兰市| 新民市| 杭锦旗| 西乌珠穆沁旗| 绥化市| 安庆市| 朝阳县| 固阳县| 武乡县| 新疆| 安徽省| 射洪县| 长沙市| 巧家县| 大厂| 黑水县| 滨州市|