首页 > 其他分享 >Vite+Electronss构建vue3桌面应用

Vite+Electronss构建vue3桌面应用

时间:2024-06-21 15:59:23浏览次数:13  
标签:vue 创建 Electronss js electron Vite vue3 true vite

本文介绍使用vite构建Electron项目,使用@vitejs/plugin-vue插件辅助完成vue3桌面应用,主要使用Vite,Vue,Electron,@vitejs/plugin-vue四个模块。

一 创建项目

1、输入命令 npm init vite

首先输入项目名称viteElectron,选择Vue框架和javascript语言

2、运行项目

输入命令:

cd viteElectron

npm install

npm run dev 

效果如下:

二、安装electron

1.安装electron

输入以处命令,安装electron:

        npm install electron --save-dev

三、完善项目

1.创建main.js

在根目录下,创建main.js,代码如下:

// 控制应用生命周期和创建原生浏览器窗口的模组
import {app,BrowserWindow } from 'electron'
process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = true; // 关闭控制台的警告
 
function createWindow () {
  // 创建浏览器窗口
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      // 书写渲染进程中的配置
      nodeIntegration: true, //开启true这一步很重要,目的是为了vue文件中可以引入node和electron相关的API
      contextIsolation: false, // 可以使用require方法
      enableRemoteModule: true, // 可以使用remote方法
    }
  })
 
  // 加载 index.html
 mainWindow.loadFile('index.html') 

} 
// 这段程序将会在 Electron 结束初始化
// 和创建浏览器窗口的时候调用
// 部分 API 在 ready 事件触发后才能使用。
app.whenReady().then(() => {
  createWindow() 
  app.on('activate', function () {
    // 通常在 macOS 上,当点击 dock 中的应用程序图标时,如果没有其他
    // 打开的窗口,那么程序会重新创建一个窗口。
    if (BrowserWindow.getAllWindows().length === 0) createWindow()
  })
})
// 除了 macOS 外,当所有窗口都被关闭的时候退出程序。 因此,通常对程序和它们在
// 任务栏上的图标来说,应当保持活跃状态,直到用户使用 Cmd + Q 退出。
app.on('window-all-closed', function () {
  if (process.platform !== 'darwin') app.quit()
})

2.修改package.json

修改package.json,main.js就是上一步在根目录创建的文件。

3.修改vite.config.js 

在vite.config.js,进行如下配置:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from "path"
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  server: {
    port: 8888,
    cors: true, // 允许跨域
    hmr: true, // 开启热更新
  },
})

4.修改index.html

        在index.html的body中增加:<h2>您好,欢迎参观Electron</h2>

5.运行项目

命令如下:npm run electron:serve

效果如下:

本文主要介绍了使用vite创建electron桌面应用,加载本地静态资源,读者可以在此基础上增加自启动本地服务器,实现热重载功能。

标签:vue,创建,Electronss,js,electron,Vite,vue3,true,vite
From: https://blog.csdn.net/ch_s_t/article/details/139854970

相关文章

  • vue3中如何使用pinia -- pinia使用教程(一)
    vue3中如何使用pinia--pinia使用教程(一)安装使用创建store使用store访问修改store使用组合式api创建store--setupstorepinia和hook的完美结合如何解决上面的问题使用hook管理全局状态和pinia有何优缺点?参考小结pinia是一个Vue3的状态管理库,它......
  • vue3 详细配置 pinia,以及持久化处理
    安装piniapnpminstallpiniapnpminstallpinia-plugin-persistedstate使用pinia根目录下创建store文件夹,新家moudules文件夹和index.ts文件,如图:index.ts文件//store/index.ts//仓库大仓库import{createPinia}from"pinia";importpiniaPluginPersisteds......
  • 解决Vue3项目运行控制台警告
    运行Vue3项目,控制台警告:Featureflag VUE_PROD_HYDRATION_MISMATCH_DETAILS isnotexplicitlydefined.Youarerunningtheesm-bundlerbuildofVue,whichexpectsthesecompile-timefeatureflagstobegloballyinjectedviathebundlerconfiginordertogetbet......
  • 浅析Vite本地构建原理
    前言随着Vue3的逐渐普及以及Vite的逐渐成熟,我们有必要来了解一下关于vite的本地构建原理。对于webpack打包的核心流程是通过分析JS文件中引用关系,通过递归得到整个项目的依赖关系,并且对于非JS类型的资源,通过调用对应的loader将其打包编译生成JS代码,最后再启动开发服务器。了解......
  • Vue30_指令3
    一、什么是指令?指令(Directives)是带有 v- 前缀的特殊属性。例如在入门案例中的v-model,代表双向绑定。 二、插值表达式1、花括号格式:{{表达式}}说明:该表达式支持JS语法,可以调用js内置函数(必须有返回值)表达式必须有返回结果。例如1+1,没有结果的表......
  • Vue30_实例2
    目标:了解Vue实例生命周期,生命周期的钩子函数及created函数常用场景分析:在创建vue实例的时候可以制定模板id、数据和方法;而如果要在实例化、模板渲染的过程中需要执行一些其它操作的话,那么可以使用钩子函数。一、创建Vue实例每个Vue应用都是通过用Vue函数创建一个新的Vue......
  • uniapp vue3 虚拟下拉滚动
    下面是vue3的写法  如果想查看vue2的写法  请移步至github链接   https://github.com/Arvin-Cui/vue-virtual-scroll/blob/master/pages/index/index.vue1.index.vue  index.vue页面中加一个共用组件VirtualList.vue<template> <view>  <VirtualList:lis......
  • Vue3 状态管理 - Pinia,超详细讲解!
    前言:哈喽,大家好,我是前端菜鸟的自我修养!今天给大家分享【Vue3状态管理-Pinia】,超详细讲解!并提供具体代码帮助大家深入理解,彻底掌握!原创不易,如果能帮助到带大家,欢迎收藏+关注哦......
  • vue3的computed计算属性返回值注解
    //语法结构:computed<返回值的类型>()列子//定义数据constcuont=ref(0)typeItem={id:stringname:stringprice:number}constlist=ref<Item[]>([{id:'1001',name:'男鞋',price:888},{id:'1002',name:'女鞋......
  • npm ERR! network request to https://registry.npmmirror.com/create-vite failed,
    npmERR!networkrequesttohttps://registry.npmmirror.com/create-vitefailed,  npmverbnpmv9.5.1npmERR!codeETIMEDOUTnpmERR!syscallconnectnpmERR!errnoETIMEDOUTnpmERR!networkrequesttohttps://registry.npmmirror.com/create-vitefailed,reas......