1- Electron 创建项目、初始化项目

Electron官网 Build cross-platform desktop apps with JavaScript, HTML, and CSS | Electron

Electron 初始化

初始化项目 - 构造package.json
npm init -y
安装Electron模块包 
npm i electron -D  // 注意!如果报错查看node包是否太高
配置启动脚本
{
  "main": "main.js",  //配置程序的入口文件,即为主进程
  "scripts": {
    "start": "electron ." //配置项目启动脚本  
  },
}

在终端输入npm run start 启动项目
根目录下创建 mian.js 文件,这是程序的入口文件
const { app, BrowserWindow } = require("electron");

const createWindow = () => {
  const win = new BrowserWindow({
    width: 800, //窗口 宽
    height: 600, //窗口 高
  });
};

app.whenReady().then(createWindow)
标启动项目,网页就会出现一个空白窗口题
将网页镶嵌在应用中
const createWindow = () => {
  const win = new BrowserWindow({
    width: 800, 
    height: 600, 
  });
  win.loadURL("https://www.baidu.com/"); //需要加载的网页
};
窗口出现百度网页
本地页面引入项目中
const createWindow = () => {
  const win = new BrowserWindow({
    width: 800, 
    height: 600, 
  });
  win.loadFile('index.html') //引入根目录下的index.html
};
配置热启动 

每次更改项目都要重新启动,真是麻烦死了/(ㄒoㄒ)/~~

npm i nodemon -g 
//package.json 配置启动方式

"scripts": {
    "start": "nodemon --exec electron ."
},

重新启动就可以热启动了,very好用!!! ps:会跟自动保存有点冲突,尽量不要用自动保存

打开调试窗口

方法1:ctrl+shift+i

方法2:

const createWindow = () => {
  const win = new BrowserWindow({
    width: 800,
    height: 600, 
  });
  win.loadFile('index.html')
  win.webContents.openDevTools() //打开调试工具
};

 关于安全警告⚠

方法1:在index.html 配置csp(推荐)

<!-- 配置CSP -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src 'self' data:; script-src 'self'; style-src 'self' 'unsafe-inline'">

方法2:在main.js中

const createWindow = () => {
  const win = new BrowserWindow({
    width: 800,
    height: 600, 
  });
  win.loadFile('index.html')
  win.webContents.openDevTools() 

  // 暂时关闭安全警告 (所有的警告都被关闭)
  process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true'
};

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UE5:Lumen 框架

1.Lumen渲染流程框架 2.Lumen基本概念 2.1 LumenCard & LumenMeshCards LumenMeshCards&#xff1a;一组带有方向性的模型简化代理&#xff0c;视模型复杂度不同可能包含6个及以上数量的LumenCard&#xff1b;用来提供光照采样的位置和方向。 2.2 LumenCardPage & Lu…

TrustZone之强制隔离

TrustZone有时被称为一个强制执行的保护系统。请求者表示其访问的安全性,而内存系统决定是否允许该访问。内存系统基于何种方式进行检查呢? 在大多数现代系统中,内存系统的检查是由互连完成的。例如,Arm NIC-400允许系统设计人员为每个连接的完成者指定以下内容: • 安全…

基于开源的JAVA mongodb jdbc 驱动 使用教程

基于开源的JAVA mongodb jdbc 驱动 使用教程介绍 介绍 本文介绍一款开源的基于JAVA的 Mongodb JDBC 驱动使用教程 开源地址 https://gitee.com/bgong/jdbc-mongodb-driver功能价值 与mybaits融合&#xff1a;复用mybatis的功能特性&#xff0c;如:缓存,if动态判断标签等特…

程序员视角体验快速搭建智能客服中心

本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道。 目录 前言基本概念工作原理浅试体验体验收获最后 前言 Amazon Connect是亚马逊云科技…

原生Html 引入element UI + vue3 表单校验设置

效果&#xff1a; 提交时&#xff0c;检验结果展示 html源码 <!DOCTYPE html> <html> <!--带搜索输入框下拉弹窗 --> <head><meta charset"UTF-8"><!-- import Vue before Element --><script src"../js/vue3.3.8/vu…

IDEA中Terminal配置为bash

简介 我们日常命令行都是使用Linux的bash指令&#xff0c;但是我们的开发基本都是基于Windows上的IDEA进行开发的&#xff0c;对此我们可以通过将IDEA将终端Terminal改为git bash自带的bash.exe解决问题。 配置步骤 安装GIT 这步无需多说了&#xff0c;读者可自行到官网下载…

微信小程序单图上传和多图上传

图片上传主要用到 1、wx.chooseImage(Object object) 从本地相册选择图片或使用相机拍照。 参数 Object object 属性类型默认值必填说明countnumber9否最多可以选择的图片张数sizeTypeArray.<string>[original, compressed]否所选的图片的尺寸sourceTypeArray.<s…

CSS中神奇的filter属性

CSS是Web开发中不可或缺的一部分&#xff0c;它可以帮助开发者在页面上添加各种各样的样式和效果。其中一个比较神奇的CSS属性就是filter&#xff0c;它可以让我们实现各种有趣的图形处理效果。 一、filter属性的基础 filter属性是CSS中用于对元素进行图形效果处理的属性之一…

【Pytorch】学习记录分享3——PyTorch 自动微分与线性回归

【【Pytorch】学习记录分享3——PyTorch 自动微分与线性回归 1. autograd 包&#xff0c;自动微分2. 线性模型回归演示3. GPU进行模型训练 小结&#xff1a;只需要将前向传播设置好&#xff0c;调用反向传播接口&#xff0c;即可实现反向传播的链式求导 1. autograd 包&#x…

WPF仿网易云搭建笔记(6):Style进阶详解

文章目录 专栏和Gitee仓库前言Style简单使用样式字典全局样式局部全局样式全局样式穿透 专栏和Gitee仓库 WPF仿网易云 Gitee仓库 WPF仿网易云 CSDN博客专栏 前言 WPF想要批量设置样式属性&#xff0c;一共有3个方法 Style样式Template控件模板DataTemplate数据模板 WPF 零基础…

word四级目录序号不随上级目录序号变化问题解决方法

一、word中的几个元素简介 1、word中的列表 如下图所示&#xff0c;代表word的列表&#xff1a; 2、word中的标题 如下图所示&#xff0c;代表word的标题&#xff1a; 3、word中的编号/序号 如下图所示&#xff0c;代表word的编号/序号&#xff1a; 4、word中的目录 如下图…

【Python】人工智能-机器学习——不调库手撕深度网络分类问题

1. 作业内容描述 1.1 背景 数据集大小150该数据有4个属性&#xff0c;分别如下 Sepal.Length&#xff1a;花萼长度(cm)Sepal.Width&#xff1a;花萼宽度单位(cm)Petal.Length&#xff1a;花瓣长度(cm)Petal.Width&#xff1a;花瓣宽度(cm)category&#xff1a;类别&#xff0…

【一起学Rust | 框架篇 | Tauri2.0框架】Tauri App开启远程调试功能

文章目录 前言一、搭建PageSpy环境二、接入SDK三、进行远程调试调试控制台网络抓包审查元素 四、延伸 前言 Tauri在Rust圈内成名已久&#xff0c;凭借Rust的可靠性&#xff0c;使用系统原生的Webview构建更小的App 以及开发人员可以灵活的使用各种前端框架而一战成名。 然而&…

软考机考考试第一批经验分享

由于机考的特殊性&#xff0c;考试环境与传统笔试环境有所不同。下面是与考试环境相关的总结&#xff1a; 草稿纸&#xff1a;考场提供足够数量的草稿纸&#xff0c;每位考生都会分发一张白纸作为草稿纸。在草稿纸上需要写上准考证号。如果不够用&#xff0c;可以向监考老师再次…

RISCV中的寄存器操作

控制状态寄存器指令 (csrrc、csrrs、csrrw、csrrci、csrrsi、csrrwi)&#xff0c; 使我们可以轻松地访问一些程序性能计数器。对于这些 64 位计数器, 我们一次可以读取 32 位。这些计数器包括了系统时间, 时钟周期以及执行的指令数目。 CSRRW 先读取寄存器的值&#xff1a;tCS…

ES6学习(三):Set和Map容器的使用

Set容器 set的结构类似于数组,但是成员是唯一且不会重复的。 创建的时候需要使用new Set([])的方法 创建Set格式数据 let set1 new Set([])console.log(set1, set1)let set2 new Set([1, 2, 3, 4, 5])console.log(set2, set2) 对比看看Set中唯一 let set3 new Set([1, 1,…

Lists.partition是如何实现懒加载的?

前言&#xff1a; 最近看到一篇文章&#xff0c;里面提及了google的common包下Lists.partition方法为懒加载&#xff0c;只有在遍历时才会真正分区。平时使用时并未感觉到,感觉有点好奇。特此将自己寻找的答案的过程整理记录下来。 源码&#xff1a; public static <T>…

云原生之深入解析K8s中的微服务项目设计与实现

一、微服务项目的设计 ① 微服务设计的思想 一个单片应用程序将被构建、测试并顺利地通过这些环境。事实证明&#xff0c;一旦投资于将生产路径自动化&#xff0c;那么部署更多的应用程序似乎就不再那么可怕了。请记住&#xff0c;CD的目标之一就是让部署变得无聊&#xff0c…

idea中定时+多数据源配置

因项目要求,需要定时从达梦数据库中取数据,并插入或更新到ORACLE数据库中 1.pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-…

多架构容器镜像构建实战

最近在一个国产化项目中遇到了这样一个场景&#xff0c;在同一个 Kubernetes 集群中的节点是混合架构的&#xff0c;也就是说&#xff0c;其中某些节点的 CPU 架构是 x86 的&#xff0c;而另一些节点是 ARM 的。为了让我们的镜像在这样的环境下运行&#xff0c;一种最简单的做法…