直接通过electron创建项目

news/2025/11/28 21:18:02/文章来源:https://www.cnblogs.com/qingzhen/p/19284173

直接通过electron创建项目

一、创建原始electron实例demo1

1、创建项目目录demo1

2、通过命令初始化项目配置文件package.json

命令:npm init -y

项目目录下生成packabe.json文件

{

  "name": "demo1",

  "version": "1.0.0",

  "description": "",

  "main": "index.js",

  "scripts": {

    "test": "echo \"Error: no test specified\" && exit 1"

  },

  "keywords": [],

  "author": "",

  "license": "ISC",

  "type": "commonjs"

}

 

image

 

3、安装electron,默认国外镜像安装较慢

命令:npm install electron --save-dev

最好使用国内镜像安装命令:cnpm install electron --save-dev

注册国内镜像命令:npm config set registry https://registry.npm.taobao.org

或者使用官方源:

npm config set registry https://registry.npmjs.org

提示也上处理无法安装electron

最终安装了cnpm成功安装了electron

在命令行中运行以下命令来全局安装cnpm

npm install -g cnpm --registry=https://registry.npmmirror.com

这里使用--registry=https://registry.npmmirror.com指定了cnpm的镜像源为中国镜像,这可以加快下载速度。

使用 cnpm 安装 electron

安装完cnpm后,你可以使用它来安装electron。在命令行中运行以下命令:

cnpm install electron

或者,如果你正在开发一个项目并希望将electron作为项目依赖添加到你的package.json文件中,你可以使用:

cnpm install electron --save-dev

这将把electron添加到你的开发依赖中。 

image 

验证安装

安装完成后,你可以通过运行以下命令来验证electron是否正确安装:

npx electron --version

或者,如果你已经全局安装了electron,你也可以直接运行:

electron --version

这应该会显示你安装的electron版本号。

 

image

 

4、通过packages.json文件可以看到"main": "index.js"入口文件为index.js文件

由于 Electron 的主进程是 Node.js 运行时,因此你可以使用 electron 命令执行任意 Node.js 代码(你甚至可以将其用作 REPL)。要执行此脚本,请将 electron . 添加到 package.json scripts 字段中的 start 命令中。该命令将告诉 Electron 可执行文件在当前目录中查找主脚本并在开发模式下运行它。

 

package.json

{

  "name": "my-electron-app",

  "version": "1.0.0",

  "description": "Hello World!",

  "main": "index.js",

  "scripts": {

    "start": "electron .",

    "test": "echo \"Error: no test specified\" && exit 1"

  },

  "author": "Jane Doe",

  "license": "MIT",

  "devDependencies": {

    "electron": "23.1.3"

  }

}

5、创建index.js文件,内容如下:

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

 

const createWindow = () => {

  const win = new BrowserWindow({

    width: 800,

    height: 600

  })

 

  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、index.js中加载了index.html文件,创建index.html文件如下:

<!DOCTYPE html>

<html>

  <head>

    <meta charset="UTF-8" />

    <meta

      http-equiv="Content-Security-Policy"

      content="default-src 'self'; script-src 'self'"

    />

    <meta

      http-equiv="X-Content-Security-Policy"

      content="default-src 'self'; script-src 'self'"

    />

    <title>Hello from Electron renderer!</title>

  </head>

  <body>

    <h1>Hello from Electron renderer!</h1>

    <p>��</p>

    <p id="info"></p>

  </body>

  <script src="./renderer.js"></script>

</html>

7、通过命令运行electron程序:npm run start

 

image

 

 

8、vscode中运行调试

如果要使用 VS Code 调试应用,则需要将 VS Code 附加到主进程和渲染器进程。这是供你运行的示例配置。在项目中的新 .vscode 文件夹中创建 launch.json 配置

 

.vscode/launch.json

{

  "version": "0.2.0",

  "compounds": [

    {

      "name": "Main + renderer",

      "configurations": ["Main", "Renderer"],

      "stopAll": true

    }

  ],

  "configurations": [

    {

      "name": "Renderer",

      "port": 9222,

      "request": "attach",

      "type": "chrome",

      "webRoot": "${workspaceFolder}"

    },

    {

      "name": "Main",

      "type": "node",

      "request": "launch",

      "cwd": "${workspaceFolder}",

      "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",

      "windows": {

        "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"

      },

      "args": [".", "--remote-debugging-port=9222"],

      "outputCapture": "std",

      "console": "integratedTerminal"

    }

  ]

}

 

当你从侧边栏中选择 "运行和调试" 时,将会出现 "+渲染器" 选项,允许你设置断点并检查主进程和渲染器进程中的所有变量。

 

我们在 launch.json 文件中所做的是创建 3 个配置:

 

Main 用于启动主进程,并公开端口 9222 用于远程调试(--remote-debugging-port=9222)。这是我们用来连接 Renderer 调试器的端口。由于主进程是 Node.js 进程,因此类型设置为 node

 

Renderer 用于调试渲染器进程。因为主进程是创建进程的进程,所以我们必须对其进行 "attach" ("request": "attach"),而不是创建一个新进程。渲染器进程是一个 Web 进程,所以我们必须使用的调试器是 chrome

 

Main + renderer 是同时执行前面的 复合任务。

 

image

 

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

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

相关文章

东方博宜OJ 1246:请输出n行的9*9乘法表 ← 嵌套循环

​【题目来源】https://oj.czos.cn/p/1246【题目描述】请从键盘读入一个整数 n,代表有 n 行,输出 n 行的 9*9 乘法表。比如,假设 n=5,则输出如下: 1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8 4*3=12 4*4=165*…

使用cnpm(中国镜像源的npm客户端)来安装electron

使用cnpm(中国镜像源的npm客户端)来安装electron要使用cnpm(中国镜像源的npm客户端)来安装electron,你需要先确保已经安装了cnpm。如果你还没有安装cnpm,你可以通过npm来安装它。以下是具体步骤:1. 安装 cnpm 首…

2025年11月电动叉车销售企业避坑指南:市场主流品牌横向对比

在制造业转型升级和绿色物流政策推动下,电动叉车市场需求持续增长。根据中国工程机械工业协会数据,2025年前三季度电动叉车销量同比增长18%,占叉车总销量比例突破65%。许多企业管理者在选购电动叉车时面临诸多考量,…

2025年11月中国电动叉车销售公司推荐榜单:主流品牌综合对比分析

作为物流仓储、制造业企业管理者或采购负责人,您在2025年面临日益严格的环保政策与降本增效的双重压力时,选择可靠的电动叉车供应商成为关键决策。根据中国工程机械工业协会数据显示,2024年中国电动叉车销量占比已突…

详细介绍:Qt样式深度解析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

文档抽取科技:利用自然语言处理技术自动识别和提取合同、判决书等法律文书中的关键信息,并将其转化为结构化数据

文档抽取科技:利用自然语言处理技术自动识别和提取合同、判决书等法律文书中的关键信息,并将其转化为结构化数据pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; d…

替代模型简化复杂物理仿真任务

本文介绍了利用替代模型技术加速多物理场仿真的创新方法。通过机器学习将复杂物理模型压缩为轻量级版本,实现实时仿真计算,应用于电动汽车电池包模拟和食品储存优化等领域,计算速度提升高达10万倍。工程仿真瘦身实现…

U636459 网格

网格走路问题的多维版本。 我们说过,如果网格是二维的,复杂度可以做到 \(\sqrt {nm}\),这是因为通过根号分治有 DP 和容斥的两种解法,这里都需要运用到。 将所有坏点排序之后 DP 即可。

NOIP day -1 笔记

考前打云斗的模拟赛练一下手,比赛链接 T1 二分答案+差分,每次二分都模拟出一个差分数组来找到要求最严格的值,总时间复杂度为 \(O(n\log(a+k))\)AC Code #include<bits/stdc++.h> #define int long long #def…

2025-11-28 用后端java的架构来类比 NestJS 的各个部分(deepseek)

Java和NestJS在设计理念和架构模式上有很深的渊源。NestJS 本身很大程度上受到了 Spring Boot 和 Angular 的启发。核心概念类比NestJS 部件 Java/Spring 类比 核心职责Module (模块) @Configuration 配置类 / Java 包…

2025-11-28 用前端react的架构来类比 NestJS 的各个部分(deepseek)

好的,这个类比非常棒!用前端 React 的架构来理解 NestJS,可以让你快速建立起对 NestJS 各个核心部件的直观感受。 我们来做这样一个类比:一个 NestJS 应用就像一个复杂的 React 组件树,而它的模块、控制器、服务等…

java真分页查询两个库的数据,合并成一个结果集分页查询

/*** 合并两个库的数据,真分页* @param pageNum 页码(从1开始)* @param pageSize 页大小* @param age 查询条件(示例)* @return 分页结果*/public IPage<UserDTO> mergeUserPage(Integer pageNum, Integer …

【Microsoft Learn】Microsoft Azure 服务 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

U636458 蛇

记录一个 DP 表示匹配信息。 然后枚举开头位置,路径形态只有那么几种,枚举一下即可。 可 pku 那个题差不太多。

Spring AI 代码分析(十)--Spring Boot集成

Spring Boot 集成分析 请关注微信公众号:阿呆-bot 1. 工程结构概览 Spring AI 通过 Spring Boot Starter 和 Auto Configuration 机制,实现了零配置的 AI 应用开发。开发者只需要添加依赖和配置属性,就能使用各种 A…

WSL 迁移发行版位置

1、查看发行版 PS C:\Users\18071> wsl --list --verboseNAME STATE VERSION * Ubuntu-20.04 Stopped 22、必须先关闭 WSL wsl --shutdown3、导出发行版 wsl --export Ubuntu-20.0…

7款AI论文写作辅助必备工具:毕业论文高效完成全攻略

校园论坛上毕业生写论文的求助帖引发共鸣,2025 年 AI 成写论文得力助手。作者试用 7 款 AI 论文写作辅助工具并测评,包括图灵论文 AI 写作助手、巨鲸写作等。各工具功能多样,如一键生成初稿、解析导师意见、处理问卷…

MySQL语法之用alter增加删除列

用MySQL alter table增加、删除或修改字段,设置新字段位置。摘要:用MySQL alter table增加、删除或修改字段,设置新字段位置。 综述在 MySQL 中,ALTER TABLE 语法糖常常被用于修改已经创建表的结构。工作中,经常遇…

【JUnit实战3_17】第九章:容器内测试(下)——Arquillian 框架的用法简介 - 实践

【JUnit实战3_17】第九章:容器内测试(下)——Arquillian 框架的用法简介 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fon…

详细介绍:Web安全深度实战:从漏洞挖掘到安全防护

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …