Electron快速入门(一):用VS Code快速创建html+js+css编写的项目

news2024/11/26 21:18:47

创建一个文件夹(例如:start或者create-electron 都是小写英文字母有的插件才不会报错),并进入该文件夹,打开 vscode创建3个文件:

1. 名为 main.js 的文件是主进程

// main.js

//用于控制应用程序寿命和创建本地浏览器窗口的模块
const { app, BrowserWindow } = require("electron");
const path = require("node:path");
const createWindow = () => {
  //创建浏览器窗口。
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      preload: path.join(__dirname, "preload.js"),
    },
  });

  // 加载 index.html
  mainWindow.loadFile("index.html");
  // 加载指定网址
  //mainWindow.loadURL('https://blog.csdn.net/lulei5153')
  // 打开开发工具
  // mainWindow.webContents.openDevTools()
};

// 这段程序将会在 Electron 结束初始化
// 和创建浏览器窗口的时候调用
// 部分 API 在 ready 事件触发后才能使用。
app.whenReady().then(() => {
  createWindow();

  app.on("activate", () => {
    // 在 macOS 系统内, 如果没有已开启的应用窗口
    // 点击托盘图标时通常会重新创建一个新窗口
    if (BrowserWindow.getAllWindows().length === 0) createWindow();
  });
});

// 除了 macOS 外,当所有窗口都被关闭的时候退出程序。 因此, 通常
// 对应用程序和它们的菜单栏来说应该时刻保持激活状态,
// 直到用户使用 Cmd + Q 明确退出
app.on("window-all-closed", () => {
  if (process.platform !== "darwin") app.quit();
});

// 在当前文件中你可以引入所有的主进程代码
// 也可以拆分成几个文件,然后用 require 导入。

  2.名为 preload.js的文件是给主进程和渲染进程之间传递消息和数据。

// preload.js

// 所有的 Node.js API 接口 都可以在 preload 进程中被调用.
// 它拥有与 Chrome 扩展一样的沙盒。
window.addEventListener('DOMContentLoaded', () => {
    const replaceText = (selector, text) => {
    const element = document.getElementById(selector)
    if (element) element.innerText = text
    }
    for (const dependency of ['chrome', 'node', 'electron']) {
    replaceText(`${dependency}-version`, process.versions[dependency])
    }
    })

  3.名为 index.html 的文件是渲染进程

<!--index.html-->
<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8">
    <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
    <title>Hello World!</title>
  </head>
  <body>
    <h1>Hello World!</h1>
    我们正在使用Node.js <span id="node-version"></span>,
    Chromium <span id="chrome-version"></span>,
   和Electron <span id="electron-version"></span>.
    <!-- 您也可以此进程中运行其他文件 -->
    <script src="./renderer.js"></script>
  </body>
</html>

VS Code终端输入命令

1.初始化配置命令:  

yarn init -y


 出现一个 package.json 配置文件: 找到 "main" 字段,将其值从

     "main": "index.js", 改为

"main": "main.js",

 在花括号内增加一条启动命令(注意electron的后面的一个点.必须有个空格):

"scripts": {
    "dev": "electron ."
  }

2.安装 Electron 依赖包命令(有安装过Electron 依赖包用命令:yarn add --dev electron也可 以):

npm install electron --save-dev

3.启动命令:

yarn dev

                       Electron官网:快速入门 | Electron (electronjs.org)

                       

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1845439.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全的双刃守护:揭秘双算法SSL证书的智慧盾牌

双算法SSL证书&#xff0c;这一科技与智慧的结晶&#xff0c;如同夜空中最亮的双子星&#xff0c;照亮了数据传输的幽径。它不仅继承了传统SSL证书的精髓&#xff0c;确保信息在传递过程中的私密与完整&#xff0c;更创新性地融合了两种顶尖加密算法——RSA与SM2&#xff0c;犹…

gateway整合sentinel限流

官方文档&#xff1a;https://github.com/alibaba/Sentinel/wiki/%E7%BD%91%E5%85%B3%E9%99%90%E6%B5%81 从 1.6.0 版本开始&#xff0c;Sentinel 提供了 Spring Cloud Gateway 的适配模块&#xff0c;可以提供两种资源维度的限流&#xff1a; route 维度&#xff1a;即在 Spr…

STM32的通用定时器中断编程

如果遇到需要单片机产生严格时序的场景&#xff08;比如DAC输出特定模拟信号&#xff0c;GPIO口控制模拟开关&#xff09;&#xff0c;延时函数可能就无法胜任了。最近在工作时公司上级教会了我使用“门票”思维&#xff08;中断标志位)编写单片机裸机程序&#xff0c;今天写一…

预制舱变电站高压室巡检机器人系统

一、背景 预制舱变电站高压室由于空间狭小、设备紧凑&#xff0c;传统的巡检方式往往需要人工进入高压室进行巡检&#xff0c;不仅存在安全风险&#xff0c;而且巡检效率低下&#xff0c;难以满足日益增长的电力设备运维需求。 二、预制舱高压室巡检机器人系统 预制舱高压室巡…

QT MQTT (二)编译与集成

一、QT MQTT 提供 MQTT 客户端服务的 Qt 专用库基于标准化发布 / 订阅协议&#xff0c;用于在设备和组件之间可靠地共享数据。MQTT 是为保证状态正确性、满足高安全标准和交换最小数据而设计的协议&#xff0c;因此被广泛应用于各种分布式系统和物联网解决方案中。 Qt开发MQT…

【SAP Abap】一条SQL语句实现支持报表项配置的财务报表

【SAP Abap】一条SQL语句实现支持报表项配置的财务报表 1、业务背景2、配置项特殊处理3、实现方式&#xff08;Hana Studio SQL语句&#xff09;4、实现方式&#xff08;Abap OpenSQL语句&#xff09;5、总结 1、业务背景 在财务三大报表之外&#xff0c;业务需要使用类似的科…

[创业之路-121] :制造业企业的必备管理神器-ERP-企业唯一的盈利入口:销售管理

目录 一、ERP销售管理&#xff1a;卖产品 1.1 概述 1.2 核心功能 1. 客户管理&#xff1a; 2. 销售订单管理&#xff1a;最重要的功能**** 3. 销售发货管理&#xff1a; 4. 销售退货管理&#xff1a; 5. 销售统计分析&#xff1a; 二、用友ERP销售管理 2.1 概述 2.2…

UniApp 开发微信小程序教程(一):准备工作和环境搭建,项目结构和配置

文章目录 一、准备工作和环境搭建1. 安装 HBuilderX步骤&#xff1a; 2. 注册微信开发者账号步骤&#xff1a; 3. 创建 UniApp 项目步骤&#xff1a; 二、项目结构和配置1. UniApp 项目结构2. 配置微信小程序修改 manifest.json修改 pages.json 3. 添加首页文件index.vue 示例&…

Lynred在欧洲防务展上将展出新品——“HOT”红外传感器Seegnus。

Lynred在即将举办的巴黎欧洲防务展上将展出其令人瞩目的新品——“HOT”红外传感器Seegnus。这款专为战术视觉设计的大型阵列传感器&#xff0c;以其紧凑的封装和高分辨率的中波红外成像能力&#xff0c;无疑将为航空航天、国防和商业市场带来革命性的突破。 Seegnus传感器拥有…

【经典算法】LeetCode 8. 字符串转换整数 (atoi)(Java/C/Python3/Go实现含注释说明,Easy)

作者主页&#xff1a; &#x1f517;进朱者赤的博客 精选专栏&#xff1a;&#x1f517;经典算法 作者简介&#xff1a;阿里非典型程序员一枚 &#xff0c;记录在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法&#xff08;公众号同名&#xff09; ❤️觉得文章还…

蔚来汽车AI算法工程师,如何理解注意力?

大家好啊&#xff0c;我是董董灿。 今天分享一个上海蔚来汽车的AI算法岗位面试经验总结帖&#xff0c;面试岗位为算法工程师。 这次面试提到的问题&#xff0c;除了与实习相关内容和反问之外&#xff0c;面试官总共问了8个问题&#xff0c;主要集中在深度学习基础概念的理解上…

裁员裁到大动脉,是一种什么体验!

大家好啊&#xff0c;我是董董灿。 降本增效是每个当老板的人都喜欢挂在嘴边的口头禅&#xff0c;尤其是行业不景气&#xff0c;公司发展遇到瓶颈的时候。 大部分公司降本增效的手段其实非常相似&#xff0c;比较容易实施的手段也就那几种。 要么搞设备自动化和流程自动化&a…

Ubuntu 22.04.1 安装ubuntu有道词典时错误发生

1. Ubuntu环境版本 Linux lipan-Precision-T1700 6.5.0-26-generic #26~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Mar 12 10:22:43 UTC 2 x86_64 x86_64 x86_64 GNU/Linux 2. 有道词典 下载ubuntu系统的deb安装包。 网易有道翻译-支持文本翻译、文档翻译、AIBox英文写作、智…

LoRa126X系列LoRa模块:专为物联网设计而生

LoRa126X是思为无线研发的一款应用于物联网应用的LoRa 前端模块系列&#xff0c;采用 Semtech 公司的 SX1262和SX1268 芯片。该系列模块具有小体积、低功耗&#xff0c;高灵敏度等特点&#xff0c;并且严格遵循无铅工艺生产和测试流程&#xff0c;符合 RoHS 和 Reach 环保标准。…

重学java 80.Junit单元测试

我总是着急的解释我自己&#xff0c;却忘了厚爱无需多言 —— 24.6.21 一、Junit介绍 1.概述 Junit是一个单元测试框架,可以代替main方法去执行其他的方法 2.作用 可以单独执行一个方法,测试该方法是否能跑通 3.注意 Junit是第三方工具,所以使用之前需要导入jar包 二、J…

HTML和CSS基础(一)

前言 HTML&#xff08;HyperText Markup Language&#xff09;是一种用于创建网页的标准标记语言。它由各种标签组成&#xff0c;这些标签定义了网页的结构和内容。HTML的早期形式诞生于1989年&#xff0c;由CERN的物理学家Tim Berners-Lee发明&#xff0c;最初用于在科学家之…

Laravel - excel 导入数据

在Laravel中&#xff0c;可以使用maatwebsite/excel这个库来处理Excel文件的导入。 1.用命令行窗口打开项目根目录&#xff0c;使用 Composer 安装 maatwebsite/excel composer require maatwebsite/excel --ignore-platform-reqs 在你的config/app.php文件中注册服务提供者&…

二轴机器人大米装箱机:推动行业持续发展

随着科技的不断发展&#xff0c;机器人技术已经深入到各行各业&#xff0c;为传统生产带来了巨大的变革。其中&#xff0c;二轴机器人大米装箱机以其独特的技术特点和应用价值&#xff0c;正在引领大米包装行业的新潮流。 二轴机器人大米装箱机采用了先进的机械臂设计&#xff…

初阶 《数组》 2. 二维数组的创建和初始化

2. 二维数组的创建和初始化 2.1 二维数组的创建 //数组创建 int arr[3][4]; char arr[3][5]; double arr[2][4];2.2 二维数组的初始化 //数组初始化 int arr[3][4] {1,2,3,4}; int arr[3][4] {{1,2},{4,5}}; int arr[][4] {{2,3},{4,5}};//二维数组如果有初始化&#xff…

Wine 安装GDI

如上发图&#xff0c;安装的时候可能出现错误&#xff1a; Cannot find cabextract. Please install it (e.g. sudo apt-get install cabext 解决方案&#xff1a; 终端执行&#xff1a; sudo apt-get update sudo apt-get install cabextract