Electron 开发环境搭建指南:从 Node.js 到第一个桌面应用

Electron 开发环境搭建指南:从 Node.js 到第一个桌面应用

  • 第一步:安装Node.js
  • 第二步:初始化Electron项目
  • 第三步:创建用户界面
  • 第四步:运行Electron应用

相信看到这里的小伙伴已经是看到了第一篇对于 Electron 框架的介绍,并且想要学习 Electron 框架,假设你已经学会了前端的基础和 Node.js ,接下来我们一起来看一下如何搭建 Electron 的开发环境吧~

随着跨平台技术的不断发展, Electron 框架为开发者提供了一种便捷高效的途径,将 Web 技术应用于桌面应用程序开发。本文将带领您逐步搭建 Electron 开发环境,并指导您从零开始创建您的第一个桌面应用。

第一步:安装Node.js

Electron 是基于 Node.js 和 Chromium 浏览器引擎构建的,因此首先需要确保您的计算机上已正确安装了 Node.js 。访问 Node.js 官方网站(https://nodejs.org/),下载并安装与您操作系统匹配的最新稳定版 Node.js 。安装完成后,在终端或命令提示符中运行 node -vnpm -v 命令,确认 Node.js 和 npm (Node 包管理器)已经成功安装且版本正常。

第二步:初始化Electron项目

  1. 创建一个新的工作目录,例如 my-electron-app

    mkdir my-electron-app
    cd my-electron-app
    
  2. 使用 npm init 初始化一个新项目,并按照提示填写相关信息:

    npm init -y
    
  3. 安装Electron作为项目的开发依赖:

    npm install --save-dev electron
    
  4. 创建主入口文件(如 main.js),并引入 Electron 模块以启动基本应用:

    // main.js
    const { app, BrowserWindow } = require('electron')function createWindow () {const win = new BrowserWindow({width: 800,height: 600,webPreferences: {nodeIntegration: true}})win.loadFile('index.html')
    }app.whenReady().then(() => {createWindow()app.on('activate', function () {if (BrowserWindow.getAllWindows().length === 0) createWindow()})
    })app.on('window-all-closed', function () {if (process.platform !== 'darwin') app.quit()
    })
    

第三步:创建用户界面

在项目根目录下创建一个简单的 HTML 文件,例如 index.html,这将是应用的主窗口内容:

<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>我的第一个Electron应用</title>
</head>
<body><h1>Hello, Electron!</h1><p>这是使用Electron框架构建的第一个桌面应用。</p>
</body>
</html>

第四步:运行Electron应用

  1. 在项目根目录下创建一个名为 start.jselectron.js 的脚本,用于启动 Electron 应用:

    // start.js
    const { app } = require('electron')
    const path = require('path')// 加载渲染进程的主文件
    const mainWindow = require('./main.js')// 指定Electron应该加载哪个HTML文件
    let indexPath = path.join(__dirname, 'index.html')// 启动应用
    app.on('ready', () => {mainWindow.createWindow(indexPath)
    })
    
  2. 在终端中运行以下命令启动你的 Electron 应用:

    npm run electron .
    

    或者如果你已经在package.json中配置了启动脚本:

    npm start
    

至此,恭喜你,你已经成功搭建了 Electron 开发环境,并创建并运行了你的第一个跨平台桌面应用。接下来,你可以根据需求进一步探索 Electron 提供的丰富 API 以及如何利用 Web 技术来扩展和完善你的桌面应用功能。

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

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

相关文章

Docker常用命令!!!

一、docker基础命令 1、启动docker systemctl start docker 2、关闭docker systemctl stop docker 3、重启docker systemctl restart docker 4、docker设置随服务启动而自启动 systemctl enable docker 5、查看docker 运行状态 systemctl status docker 6、查看docker 版本号信…

Microsoft Edge浏览器Internal Server Error问题解决

网页无法在Microsoft Edge浏览器&#xff0c;尝试Google浏览器可以&#xff0c;排除服务器问题&#xff0c;应该是浏览器本身的问题。 一般这种都是和cookie有关&#xff0c;尝试删除记录 解决&#xff01;

接口、抽象类和内部类

共同点 都不能被实例化都可以包含抽象方法都可以有默认实现的方法 区别 接口主要是对类的行为进行约束&#xff0c;实现了某个接口就具有了对应的行为&#xff1b;抽象类主要用于代码复用&#xff0c;强调的是所属关系一个类只能继承一个类&#xff0c;但可以实现多个接口接…

arm核的DMPIS是如何计算的

直接看这篇&#xff1a;https://zhuanlan.zhihu.com/p/660155292 写的很好&#xff1a; "SA8155P的CPU算力计算如下&#xff08;按照A75性能提升50%来计算&#xff0c;即 5.2 * 1.5 7.8 DMIPS/MHz &#xff09; SA8155P算力 2.419GHz * 1核 * 7.8 DMIPS/MHz 2.131GH…

【MQTT】Vue中使用mqtt

MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;作为一种轻量级、开放、灵活、简单、易于实现的通信协议。它基于发布/订阅&#xff08;Publish/Subscribe&#xff09;模式的消息传输协议&#xff0c;在上位机和硬件设备间通信时经常用到。虽然在嵌入式软件一…

【图解物联网】第4章 先进的感测技术

4.1 逐步扩张的传感器世界 在前面的章节中&#xff0c;传感器的概念是“用来获取温度和湿度等纯数据的电子零件”。温度传感器和加速度传感器等确实是用来获取简单数据的小零件&#xff0c;我们可以将其理解为构成智能手机等电子设备的一个要素。 然而&#xff0c;随…

分布式文件存储与数据缓存(二)| Redis

目录 Redis概述_什么是NoSQLNoSQL的四大分类KV型NoSql&#xff08;代表----Redis&#xff09;列式NoSql&#xff08;代表----HBase&#xff09;文档型NoSql&#xff08;代表----MongoDB&#xff09;搜索型NoSql&#xff08;代表----ElasticSearch&#xff09; 关系型数据库和非…

Aspose.PDF功能演示:在 JavaScript 中优化 PDF 文件

PDF 文件是一种普遍存在的文档共享格式&#xff0c;但它们有时可能会很大&#xff0c;导致加载时间变慢并增加存储要求。优化 PDF 文件对于确保无缝的用户体验至关重要&#xff0c;尤其是在 Web 应用程序中。因此&#xff0c;在这篇博文中&#xff0c;我们将探讨如何使用 JavaS…

NCV4266ST50T3G线性稳压器芯片中文资料规格书PDF数据手册引脚图参数图片价格

产品概述&#xff1a; NCV4266 是一款集成了 150 mA 输出电流的低漏稳压器系列&#xff0c;可用于严酷汽车环境。它包括了较宽的运行温度范围和输出电压范围。该器件提供 3.3 V、5.0 V 固定电压版本&#xff0c;以及可调电压版本&#xff0c;输出电压准确度为 2%。它具有较高的…

IDEA 下载依赖包源码报错 Cannot download sources Sources not found for:XXX

最近在做一个功能的时候想看一个库的源码&#xff0c;结果源码下不下来&#xff0c;报Cannot download sources Sources not found for:XXX,网上搜了半天&#xff0c;也找不到靠谱的结论 后来想了下&#xff0c;应该是镜像那边出了问题&#xff0c;把镜像一删&#xff0c;源码…

HTML静态网页成品作业(HTML+CSS)——非遗徽州木雕网页(6个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有6个页面。 二、作品演示 三、代…

Form当中method的post和get的区别?

1.get是从服务器上获取数据&#xff0c;post是向服务器传送数据。 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中&#xff0c;值和表单内各个字段一一对应&#xff0c;在URL中可以看到。。post 是通过HTTP post机制&#xff0c;将表单内各个字段与其内容放置在HT…

Linux nginx 域名申请证书后无法使用(无法访问此网站)阿里云域名

首先我们一步排除 1、域名备案是否成功&#xff1f; 网站备案_ICP备案_备案迁移_备案-阿里云 2、域名是否解析&#xff08;我就是错在这里&#xff09; 阿里云登录 - 欢迎登录阿里云&#xff0c;安全稳定的云计算服务平台 3、是否申请证书成功&#xff1f; 4、nginx是否支持…

將mysql表創建到hive腳本

將mysql表創建到hive腳本 mysql.java import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern;public class mysql {private static String[] deleteArrayNull(String string[]) {ArrayList<String> strList new ArrayList<…

【云原生 • Kubernetes】认识 k8s、k8s 架构、核心实战

文章目录 Kubernetes基础概念1. 是什么2. 架构2.1 工作方式2.2 组件架构 3. k8s组件创建集群步骤一 基础环境步骤二 安装kubelet、kubeadm、kubectl步骤三 主节点使用kubeadm引导集群步骤四 副节点加入主节点步骤五 部署dashboard Kubernetes核心实战1. 资源创建方式2. Namespa…

Beamer模板——基于LaTeX制作学术PPT

Beamer模板——基于LaTeX制作学术PPT 介绍Beamer的基本使用安装和编译用于学术汇报的模板项目代码模板效果图 Beamer的高级特性动态效果分栏布局定理环境 介绍 在学术领域&#xff0c;演示文稿是展示和讨论研究成果的重要方式。传统的PowerPoint虽然方便&#xff0c;但在处理复…

python爬虫之爬虫入门

import requests rrequests.get("http://www.baidu.com") print(r.status_code)#用status_code来确定页面状态是否正常 type(r) r.headers requests库入门 status_code可以用来检验网页状态是否正常type(r)返回r的类型r.headers返回该页面头部信 运行结果如下&#x…

SQLiteC/C++接口详细介绍sqlite3_stmt类(二)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类简介 下一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;三&#xff09; sqlite3_reset() 功能&#xff1a;重置一个准备好执行的SQL语…

跨越时空的纽带:探索Facebook如何连接人与人

引言 Facebook作为全球最大的社交媒体平台之一&#xff0c;已经成为了人们日常生活中不可或缺的一部分。它不仅仅是一个社交网络&#xff0c;更是连接人与人、人与世界的纽带。在这篇文章中&#xff0c;我们将深入探讨Facebook如何跨越时空&#xff0c;连接人与人之间的关系&a…

Idea 不能创建JDK1.8的spring boot项目

由于https://start.springboot.io/ 不支持JDK1.8&#xff0c;那么我们需要换idea的springboot创建源&#xff0c;需要换成 https://start.aliyun.com&#xff0c;这也是网上大部分教程说的&#xff0c;但是我这边会报这样的错误&#xff1a; Initialization failed for https:…