首页 > 其他分享 >electron+vite笔记

electron+vite笔记

时间:2023-11-08 18:35:22浏览次数:43  
标签:win app 笔记 electron pnpm screenRect vite

1、配置国内electron  镜像

     .npmrc

     electron_mirror=https://registry.npmmirror.com/-/binary/electron/

    electron_builder_binaries_mirror=https://registry.npmmirror.com/-/binary/electron-builder-binaries/

2、创建vite项目

      pnpm create vite

3、测试

     pnpm dev-------------------查看  package.json  文件

4、配置vite.config.ts,让他运行直接打开

     server: {

    open: true,     port: 3211,   }, 5、安装electron      pnpm i electron -D    安装electron    pnpm i electron-builder -D    安装编译器 6、配置electron          "start": "electron ."    pnpm i concurrently   -D  可以同时启动多个,目的是开发环境加载网址,生产环境加载本地文件 创建main文件夹在src中,作为electron文件夹存放文职,创建main.js

const { app, BrowserWindow, screen } = require("electron");
// import path from "path";
const createWindow = () => {
    const win = new BrowserWindow({
        width: 800,
        height: 600,
        x: 0,
        y: 0,
        frame: false, // 隐藏窗口的顶部菜单栏和标题栏
        webPreferences: {
            nodeIntegration: true,
            contextIsolation: false,
        },
        //  webPreferences: { preload: path.join(__dirname, "preload.ts") },
    });
    // 获取主屏幕的分辨率
    const screenRect = screen.getPrimaryDisplay().bounds;
    console.log(
        `Screen Width: ${screenRect.width}, Screen Height: ${screenRect.height}`
    );

    // 设置窗口大小和位置
    win.setBounds({
        x: 0,
        y: 0,
        width: screenRect.width,
        height: screenRect.height,
    });
    // win.loadFile("index.html");
    win.loadURL("http://127.0.0.1:3211");
};
app.whenReady().then(() => {
    createWindow();
    app.on("activate", () => {
        if (BrowserWindow.getAllWindows().length == 0) {
            createWindow();
        }
    });
    app.on("window-all-closed", () => {
        if (process.platform !== "darwin") app.quit();
    });
});

配置启动文件package.json

 

同时启动vite和electron

7. 打包

   vite打包的时候打包到dist文件夹下,配置vite.config.ts中配置本地路径

  

 8、把渲染进程创建一个文件放入里面,好区分

   render

   跳过更改,然后把index.htm更改下进入路径

 根据执行命令加载本地文件还是网址

    if (process.env.npm_lifecycle_event === "start") {
        win.loadURL("http://127.0.0.1:3211");
        win.webContents.openDevTools();
        //快捷命令shift+ctrl+i
    } else {
        win.loadFile("dist/index.html");
    }

  

 

 

 

标签:win,app,笔记,electron,pnpm,screenRect,vite
From: https://www.cnblogs.com/wx18638101223/p/17816749.html

相关文章

  • C++笔记 -- 使用STL的function实现回调机制(回调函数)
    1.使用普通函数示例一 代码:#include<iostream>#include<functional>//定义一个回调函数类型usingCallback=std::function<void(int)>;//定义一个函数,用于演示回调函数的使用voidperformOperation(intdata,Callbackcallback){//执......
  • 用Electron开发一个视频压缩软件
    前段时间用Electron开发了一个图片压缩软件,使用起来很好,然后又想到何不再做一个视频压缩的?公司网站上视频蛮多,每月消耗流量也不是个小数目,这都是钱啦,在清晰度可接受的范围内把视频压缩下,有可能就省一半的流量费。说干就干,开始查资料,首先找到的就是FFMPEG,它号称多媒体业界的瑞士军......
  • kafka第二天学习笔记
    第二天学习Kafka,我们继续深入了解这个分布式流处理平台的核心概念和功能。以下是一些重要的知识点和概念:Kafka的消费者组:消费者组是多个消费者实例的组合,可以共同消费一个topic中的消息。消费者组中的每个消费者会均匀分配topic中的消息,实现负载均衡和高可用性。Kafka的分区策略:当......
  • 11.8读书笔记《需求掌握过程》02
    所谓需求,就是那些必须在开始进行产品构建前发现的东西,如果在构建的过程中才发现需求,或者更晚更糟,直至客户已经在使用产品的时候才发现需求,那么代价将会是很大的,效率也将十分低下。《掌握需求过程》这本书中,讲述了身为一个需求分析师,应完成的几个工作内容。按书中所说,分析师即......
  • Dart 基础知识笔记
    本文主要介绍Dart基础知识笔记。tourmain()函数是Dart程序的入口main()函数返回void并具有可选的List<String>参数作为参数所有对象都从Object类继承Dart是强类型当您想明确地不希望有任何类型时,使用特殊类型dynamicDart可以在函数内创建函数(嵌套函数或局部函数),可......
  • mac笔记本自动ssh 登录linux脚本
    #!/usr/bin/expect#settimeout30spawnsshusername@ipaddr  expect"Password:"send"$password\r"expect"Selectgroup:"send"/$172.0.0.1\r"expect"Selectaccount:"send"4\r"interact #......
  • 秦疆的Java课程笔记:22 基础 标识符和关键字
    关键字:abstract,assertboolean,break,bytecase,catch,char,class,const,continuedefault,do,doubleelse,enum,extendsfinal,finally,float,forgotoif,implements,import,instanceof,int,interfacelongnative,newpackage,private,protected,publicreturnstrictfp,sh......
  • 秦疆的Java课程笔记:23 基础 数据类型
    Java是一种强类型语言。或者称为强类型定义语言。要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。一旦定义了一个变量,指定了某个数据类型,如果不经过转换的话,它就永远是这个类型了。好处是安全性高,相对的,速度就比较慢。弱类型语言,VBScript,JavaScript等,变量......
  • python初学者学习笔记-第七章-面向对象
    chapter7/面向对象7.1面向对象基础7.1.1定义类:同一类的属性和方法的集合;对象:类的实例化就是对象;7.1.2特征类的三大特性:封装,继承,和多态;封装封装就是将属性和方法相捆绑,形成一个整体;封装可以提高程序的简洁性和安全性;使用者只需调用程序的相关接口,不必关注程序的实现......
  • 秦疆的Java课程笔记:21 基础 注释
    平时写代码,代码量比较少的时候还能看懂自己写的,但当项目结构复杂起来,就需要用到注释。注释并不会被执行,是写给写代码的人看的,让别人更容易理解代码。注释是一个非常好的习惯。单行注释publicclassHelloWold{publicstaticvoidmain(String[]args){......