Electron学习1 安装环境与第一个程序

news/2024/6/17 5:00:54 标签: electron, 学习, javascript

Electron学习1 安装环境与第一个程序

  • 一、 Electron 简介
  • 二、安装 nvm
  • 三、安装nodejs
  • 四、安装nrm
  • 五、安装electron
    • 1. npm 初始化
    • 2. 创建 package.json
    • 3. 安装electron
    • 4. 创建一个页面
    • 5. 创建文件main.js
    • 6. 创建预加载器文件 preload.js
    • 7. 启动程序
  • 六、打包

在这里插入图片描述

一、 Electron 简介

Electron是一个用于构建跨平台桌面应用程序的开源库。它使用HTML、CSS和JavaScript等技术,通过将Web技术打包为原生应用程序,使得开发者能够创建出具有本地操作系统特性的软件。Electron使用Chromium作为渲染引擎,并允许开发者使用Node.js来访问底层系统资源。

本文将介绍electron开发环境配置。
准备环境 :

  • windows10
  • 一款编辑器软件,如vscode

二、安装 nvm

nvm(Node Version Manager)是一个用于管理Node.js版本的工具,它允许你在同一台机器上安装和切换多个Node.js版本。

nvm的主要功能包括:

  • 安装多个Node.js版本:你可以使用nvm安装多个Node.js版本,并在需要时进行切换。这使得你可以在同一台机器上测试不同版本的Node.js应用程序。
  • 切换Node.js版本:使用nvm,你可以轻松地在不同版本的Node.js之间进行切换,只需运行nvm use [version_number]即可。
  • 创建独立的Node.js环境:你可以使用nvm为每个项目创建一个独立的Node.js环境,这样每个项目都可以使用其自己的Node.js版本,而不必担心版本冲突。
  • 安装npm包:你可以使用nvm安装npm包,并确保它们与当前的Node.js版本兼容。

nvm 下载地址:
https://github.com/coreybutler/nvm-windows/releases

下载exe程序双击安装即可。
按提示,安装完以后,命令行运行:

nvm --version

可以查看到打印出版本信息。下面使用nvm来安装nodejs。

三、安装nodejs

nvm list available
nvm install 16.16.0

在列出的可用版本里选择一个版本进行安装。
在这里插入图片描述
上面示例安装了16.16.0版本。

安装后,激活默认nodejs版本。

nvm use 16.16.0
nvm on

四、安装nrm

nrm 是 npm 的源管理工具,可以方便地添加、切换和删除 npm 源。nrm 的全称是 “npm Resource Manager”,旨在帮助开发者管理 npm 源的配置和切换。

使用 nrm,你可以轻松地在不同的 npm 源之间进行切换,而无需手动修改 npm 的配置文件。这对于在多个项目之间切换或者使用不同的 npm 源时非常有用。

# 安装 nrm
npm install -g nrm
# 列出可用源
nrm ls
# 使用指定源
nrm use taobao

其它还有添加、删除源等功能,平时并不常用 。

electron_60">五、安装electron

1. npm 初始化

mkdir my-electron-app && cd my-electron-app
npm init

在文件夹里创建以下文件:

2. 创建 package.json

{
  "name": "my-electron-app",
  "version": "1.0.0",
   "scripts": {
    "start": "electron ."
  },
  "description": "Hello World!",
  "main": "main.js",
  "author": "Jane Doe",
  "license": "MIT"
}

electron_83">3. 安装electron

npm install --save-dev electron

4. 创建一个页面

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <!-- https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CSP -->
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
    <title>你好!</title>
  </head>
  <body>
    <h1>Electron , 你好!</h1>
  </body>
</html>

5. 创建文件main.js

const {app, BrowserWindow} = require('electron')
const path = require('path')

const createWindow = ()=>{
    const win = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
            preload: path.join(__dirname, 'preload.js')
        }
    });
    win.loadFile('index.html');
};

app.whenReady().then(()=>{
    createWindow();

    // 苹果在退出后仍驻留
    app.on('activate', ()=>{
        if (BrowserWindow.getAllWindows().length === 0 ){
            createWindow();
        }
    });
});

app.on("window-all-closed", ()=>{
    if(process.platform !== 'darwin') app.quit();
});


6. 创建预加载器文件 preload.js

window.addEventListener('DOMContentLoaded', () => {
    // 暂时什么都不做
})

文件夹示例:

7. 启动程序

npm start

在这里插入图片描述

六、打包

使用命令:

# 将 Electron Forge 添加到您应用的开发依赖中,并使用其"import"命令设置 Forge 的脚手架
npm install --save-dev @electron-forge/cli
npx electron-forge import
# 制作分发包
npm run make

生成结果示例:
在这里插入图片描述


http://www.niftyadmin.cn/n/4926643.html

相关文章

JavaScript基础 第二天

1. 运算符 2. 语句 一.运算符 1.赋值运算符 2.一元运算符 3.比较运算符 4.逻辑运算符 5.运算符优先级 1.1 赋值运算符 概念&#xff1a;对变量进行赋值的运算符 赋值运算符&#xff1a; - * / % 1.2 一元运算符 可以根据表达式的个数&#xff0c;分为一…

redis核心知识点简略笔记

value数据类型 string 二进制安全list 有序、可重复set 无序、不重复hash field-value的mapsorted set 不重复、通过double类型score分数排序场景 string 计数器缓存分布式锁访问频率控制分布式sessionhash 购物车等对象属性灵活修改list 定时排行榜set 收藏sorted set 实时排行…

深入理解Jdk5引入的Java泛型:类型安全与灵活性并存

深入理解Jdk5引入的Java泛型&#xff1a;类型安全与灵活性并存 ​ 在Java的中&#xff0c;有一个强大的工具&#xff0c;它可以让你在编写代码时既保持类型安全&#xff0c;又享受灵活性。**这个工具就是——泛型&#xff08;Generics&#xff09;。**本文将引导你深入了解Java…

测评HTTP代理的透明匿名?

在我们日常的网络冒险中&#xff0c;你是否曾听说过HTTP代理的透明匿名特性&#xff1f;这些神秘的工具就像是网络世界中的隐身斗士&#xff0c;让我们能够在互联网的迷雾中保护自己的身份和隐私。那么&#xff0c;让我们一起揭开HTTP代理的面纱&#xff0c;探索其中的奥秘吧&a…

Linux下匿名管道简单模拟进程间通信

Linux下匿名管道简单模拟进程间通信 文章目录 Linux下匿名管道简单模拟进程间通信在这里插入图片描述1.引言2.具体实现2.1创建管道2.2创建子进程 && 通信(子进程写入)2.3关闭对应fd 3.结果 1.引言 ​ ​ 首先&#xff0c;管道是一种半双工的单向进程间通信方式&#…

一个可以通过多个条件筛选的系统界面是如何实现的(springboot+mybatis)

比如我们有一个订单记录管理界面 条件可以通过订单号、商品名称、创建日期范围、价格范 围。。。来进行筛选查询。 首先我们先确定数据库订单表&#xff08;我这里就不做连表了&#xff0c;都 放在一个表中&#xff09;模拟一个订单表 order表 订单号 商品名称 创建…

一次暴露面全开的红帽渗透测试【getshell】

0x01、信息收集阶段 注&#xff1a;本次信息收集过程主要使用FOFA网络探测平台 https://fofa.info/ 一开始进行收集的时候&#xff0c;有点迷&#xff0c;直接进行了大面积的"gov.in"域名收集 host"gov.in" && country"IN"哈哈68465条…

3 指针与函数:指针作为函数参数与返回值的应用

推荐最近在工作学习用的一款好用的智能助手AIRight 网址是www.airight.fun。 引言 指针和函数是C和C等编程语言中非常重要的概念。指针是一个存储内存地址的变量&#xff0c;而函数则是一组执行特定任务的代码块。在实际编程中&#xff0c;指针在函数中的应用非常广泛&#x…