文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

electron开发构建工具怎么用

2023-06-29 23:48

关注

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

前言

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

面对这些问题,我们需要对 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 的开发构建效率。

特性

安装

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"> 引用脚本。

推荐项目目录

├──src|  ├──main|  |  ├──index.js|  |  └──...|  ├──preload|  |  ├──index.js|  |  └──...|  └──renderer|     ├──src|     ├──index.html|     └──...├──electron.vite.config.js└──package.json

开始学习

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 中导出.

预设配置

基于主进程的编译项预设:
基于preload脚本的编译项预设:
基于渲染进程的编译项预设:

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

配置问题

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

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

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

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

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯