我的编程空间,编程开发者的网络收藏夹
学习永远不晚

electron开发构建工具怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

electron开发构建工具怎么用

今天小编给大家分享一下electron开发构建工具怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    前言

    得益于 Vite 卓越的前端开发体验,越来越多的 Electron 项目也开始应用它来构建开发。翻阅各种社区资源可以发现很多基于 Vite 搭建的 Electron 开发模板,但都存在着一些共同的问题:

    • 配置相对复杂,繁琐(对 main,preload 和 renderer 分别配置)

    • 需要辅助脚本来配合编译开发

    • 无法举一反三,自主选择前端框架(vue,react,svelte,……)

    面对这些问题,我们需要对 Electron 有了解。Electron 是一个基于 Chromium 和 Node.js 的桌面应用框架,这意味着编译构建工具需要同时处理 node.js 和浏览器两种环境的代码。这是造成 Electron 开发构建工作复杂性的主因。

    知识点

    • 主进程和预加载脚本,需基于 cjs 模块化标准构建,运行在 node 环境

    • 渲染进程,通常融合现代前端框架如 vue.js,react 等基于 iife 模块化标准构建,运行在浏览器

    • 在 Electron 中开启 node 集成,可全程基于 cjs 模块化标准编写代码,尽管不需要编译构建,但不利于利用现代前端框架,还会面临严重的性能和安全问题

    • 基于 esm 标准不编译构建,尽管 node 本身已支持,但 Electron 并不支持,这也是 Electron 后续版本的一项工作

    electron-vite 是什么

    electron-vite 是一个与 Vite 集成的 Electron 构建工具。开发者无需过多关注配置,无论选择哪种前端框架都能轻松完成构建,提高 Electron 的开发构建效率。

    特性

    • ⚡️使用方式与 Vite 相同

    • ????主进程/渲染进程/preload脚本都使用 Vite 构建

    • ????统一所有配置,合并到一个文件中

    • ????预设构建配置,无需关注配置

    • ????支持渲染进程热更新(HMR)

    安装

    npm i electron-vite -D

    开发&编译

    在安装了 electron-vite 的项目中,可以直接使用 npx electron-vite 运行, 也可以在 package.json 文件中添加 npm scripts:

    {  "scripts": {    "start": "electron-vite preview", // start electron app to preview production build    "dev": "electron-vite dev", // start dev server and electron app    "prebuild": "electron-vite build" // build for production  }}

    为了使用热更新(HMR),需要使用环境变量(ELECTRON_RENDERER_URL)来决定 Electron 窗口加载本地页面还是远程页面。

    function createWindow() {  // Create the browser window  const mainWindow = new BrowserWindow({    width: 800,    height: 600,    webPreferences: {      preload: path.join(__dirname, '../preload/index.js')    }  })  // Load the remote URL for development or the local html file for production  if (!app.isPackaged && process.env['ELECTRON_RENDERER_URL']) {    mainWindow.loadURL(process.env['ELECTRON_RENDERER_URL'])  } else {    mainWindow.loadFile(path.join(__dirname, '../renderer/index.html'))  }}

    注意: 在开发中, 渲染进程 index.html 文件需要通过 <script type="module"> 引用脚本。

    推荐项目目录

    ├──class="lazy" data-src|  ├──main|  |  ├──index.js|  |  └──...|  ├──preload|  |  ├──index.js|  |  └──...|  └──renderer|     ├──class="lazy" data-src|     ├──index.html|     └──...├──electron.vite.config.js└──package.json

    开始学习

    • 克隆 electron-vite-boilerplate (https://github.com/alex8088/electron-vite-boilerplate) 项目学习

    • 通过 create-electron 脚手架来搭建项目学习

    npm init @quick-start/electron

    配置

    配置文件

    当以命令行方式运行 electron-vite 时, 将会自动尝试解析项目根目录中名为 electron.vite.config.js 的配置文件。最基本的配置文件如下所示:

    // electron.vite.config.jsexport default {  main: {    // vite config options  },  preload: {    // vite config options  },  renderer: {    // vite config options  }}

    你可以显式地通过 --config 命令行选项指定一个配置文件(相对于 cwd 路径进行解析):

    electron-vite --config my-config.js

    提示: electron-vite 也支持 ts 或者 mjs 的配置文件.

    配置智能提示

    因为 electron-vite 本身附带 Typescript 类型,所以你可以通过 IDE 和 jsdoc 的配合来实现智能提示:

    const config = {  // ...}export default config

    你还可以使用 defineConfig and defineViteConfig 工具函数,这样不用 jsdoc 注解也可以获取类型提示:

    import { defineConfig, defineViteConfig } from 'electron-vite'export default defineConfig({  main: {    // ...  },  preload: {    // ...  },  renderer: defineViteConfig(({ command, mode }) => {    // conditional config use defineViteConfig    // ...  })})

    提示: defineViteConfigVite 中导出.

    预设配置

    基于主进程的编译项预设:
    • outDir: out\main(相对于根目录)

    • target: node*, 自动匹配 Electronnode 构建目标, 如 Electron 17 为 node16.13

    • lib.entry: class="lazy" data-src\main{index|main}.{js|ts|mjs|cjs}(相对于根目录), 找不到则为空

    • lib.formats: cjs

    • rollupOptions.external: electron和所有内置node模块(如果用户配置了外部模块ID,将自动合并)

    基于preload脚本的编译项预设:
    • outDir: out\preload(相对于根目录)

    • target: 同主进程

    • lib.entry: class="lazy" data-src\preload{index|preload}.{js|ts|mjs|cjs}(相对于根目录), 找不到则为空

    • lib.formats: cjs

    • rollupOptions.external: 同主进程

    基于渲染进程的编译项预设:
    • root: class="lazy" data-src\renderer(相对于根目录)

    • outDir: out\renderer(相对于根目录)

    • target: chrome*, 自动匹配 Electronchrome 构建目标. 如 Electron 17 为 chrome98

    • lib.entry: class="lazy" data-src\renderer\index.html(相对于根目录), 找不到则为空

    • polyfillModulePreload: false, 不需要为渲染进程 polyfill Module Preload

    • rollupOptions.external: 同主进程

    提示:如果你想在已有的项目中使用这些预设配置,可以使用 Vite 的插件 vite-plugin-electron-config (github.com/alex8088/vi&hellip;)

    配置问题

    如果 Electron 具有多窗口应该如何配置?

    当 Electron 应用程序具有多窗口时,就意味着可能有多个 html 页面和 preload 脚本,你可以像下面一样修改你的配置文件:

    export default {  main: {},  preload: {    build: {      rollupOptions: {        input: {          browser: resolve(__dirname, 'class="lazy" data-src/preload/browser.ts'),          webview: resolve(__dirname, 'class="lazy" data-src/preload/webview.ts')        }      }    }  },  renderer: {    build: {      rollupOptions: {        input: {          browser: resolve(__dirname, 'class="lazy" data-src/renderer/browser.html'),          webview: resolve(__dirname, 'class="lazy" data-src/renderer/webview.html')        }      }    }  }}

    以上就是“electron开发构建工具怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    electron开发构建工具怎么用

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    electron开发构建工具怎么用

    今天小编给大家分享一下electron开发构建工具怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言得益于 Vite
    2023-06-29

    Electron 24.0.0 正式发布,跨平台桌面应用开发工具

    maxSize 参数已更改为 size,以反映传入的大小将是创建的缩略图的大小。以前,如果图像小于 maxSize,Windows 不会放大图像,而 macOS 会始终将大小设置为 maxSize。现在跨平台的行为是相同的。

    Electron 26.0.0 正式发布,跨平台桌面应用开发工具!

    systemPreferences.getAppLevelAppearance​ 和 systemPreferences.setAppLevelAppearance​ 方法以及 systemPreferences.appLevelAppea

    怎么使用Jenkins自动化构建工具进行敏捷开发

    这篇“怎么使用Jenkins自动化构建工具进行敏捷开发”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Jenkins自
    2023-06-29

    Electron 28.0.0 正式发布,跨平台桌面应用开发工具!

    12 月 5 日,Electron 28.0.0 正式发布!该版本包括了对 Chrome 120.0.6099.56、V8 12.0 和 Node.js 18.18.2 的升级。下面就来看看该版本都有哪些更新吧!
    Electron前端2024-11-30

    Electron 29.0.0 正式发布,跨平台桌面应用开发工具!

    Electron 29.0.0 正式发布!该版本包括了对 Chrome 122.0.6261.39、V8 12.2 和 Node.js 20.9.0 的升级。下面就来看看该版本都有哪些更新吧!

    Electron 27.0.0 正式发布,跨平台桌面应用开发工具!

    10 月 10 日,Electron 27.0.0 正式发布!该版本包括了对 Chrome 118.0.5993.32、V8 11.8 和 Node.js 18.17.1 的升级。下面就来看看该版本都有哪些更新吧!

    Electron 25.0.0 正式发布,跨平台桌面应用开发工具!

    Electron 22 (Chromium 108) 的计划生命周期结束日期将从 2023 年 5 月 30 日延长至 2023 年 10 月 10 日。Electron 团队将继续向后移植任何安全修复到 Electron 22 中,直到

    怎么使用java构建工具gradle

    本篇内容主要讲解“怎么使用java构建工具gradle”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用java构建工具gradle”吧!  现在我们都在谈领域驱动设计,Gradle本身的领
    2023-06-25

    Java开发工具Maven怎么用

    这篇文章给大家分享的是有关Java开发工具Maven怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Maven如果作为一个Java程序员,那么在日常的开发过程中,maven是很常见的项目构建工具。maven可
    2023-06-15

    Java构建工具gradle怎么安装使用

    本文小编为大家详细介绍“Java构建工具gradle怎么安装使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java构建工具gradle怎么安装使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。学习Java的
    2023-06-27

    怎么用Maven实现项目构建工具

    本篇内容主要讲解“怎么用Maven实现项目构建工具”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Maven实现项目构建工具”吧!1.Maven介绍1.1Maven是什么Maven项目对象模
    2023-07-02

    敏捷开发工具Leangoo 怎么用

    这篇文章的内容主要围绕敏捷开发工具Leangoo 怎么用进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!为什么选择 Leangoo?很简单,因为它够简
    2023-06-05

    C#开发工具SharpDevelop怎么使用

    使用SharpDevelop进行C#开发的步骤如下:1. 安装SharpDevelop:从官方网站(https://www.icsharpcode.net/OpenSource/SD/Download/)下载并安装SharpDevelop。
    2023-09-29

    Electron前端开发入门:构建跨平台桌面应用的利器

    Electron为前端开发者提供了一个强大的平台,使他们能够利用熟悉的Web技术来构建跨平台的桌面应用。

    嵌入式linux开发工具怎么用

    今天小编给大家分享一下嵌入式linux开发工具怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
    2023-03-19

    基于Vite构建工具,用Strve.js开发一个简版TodoList(真香!)

    我们今天就做一个简版的TodoList,项目虽小,但是五脏俱全。包含了对文本的增删改,非常值得上手。

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录