一,创建一个electron应用程序
之前我们已经用html+css+js创建了一个项目,现在将这个项目用electron以应用程序呈现。
1,首先新建一个文件夹,从终端进入该文件夹:

2,在该文件夹下执行npm init,初始化该项目。
(主要要填写description、author和name等关键值,不填写的话后面打包会报错)

执行完毕,在该文件夹下会多出一个package.json文件。
3,然后在vscode(或其他编辑器)中打开该文件夹,安装electron:
npm install electron --save-dev 或 yarn add electron --dev,建议使用yarn。
如果安装electron报错:
RequestError: read ECONNRESET
具体解决方法如下:
- npm install electron 执行后, 当运行到node install.js时, 中断执行( windows cmd用ctrl+c)
- 进入 node_modules/electron文件下, 编辑install.js
- 修改downloadArtifact这段代码, 添加淘宝镜像地址
downloadArtifact({
version,
artifactName: 'electron',
force: process.env.force_no_cache === 'true',
cacheRoot: process.env.electron_config_cache,
checksums: process.env.electron_use_remote_checksums ? undefined : require('./checksums.json'),
mirrorOptions:{
mirror:'https://cdn.npm.taobao.org/dist/electron/',
platform,
arch,
}
}).then(extractFile).catch(err => {
console.error(err.stack);
process.exit(1);
});
- 然后在当前目录 的cmd中执行 node install.js
4,打开package.json,将main的值修改为main.js
5,打开main.js:

const electron = require("electron");
const { app, ipcMain, BrowserWindow, screen } = electron;
const path = require('path');
let win;
let isMaximized = false;
let size;
app.on("ready", (e) => {
size = screen.getPrimaryDisplay().workAreaSize;
win = new BrowserWindow({
width: 1280,
height: 800,
resizable: false,
frame: false,
fullscreenable: true,
backgroundColor: "transparent",
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
preload: path.join(__dirname, './preload.js')
},
});
app.setAppUserModelId("测试工具");
win.loadURL(__dirname + "/index.html");
win.show();
win.webContents.openDevTools({ mode: "detach" });
});
ipcMain.on("window-mini", () => {
win.minimize();
});
ipcMain.on("window-toggleScreen", () => {
isMaximized = !isMaximized;
let h = isMaximized ? size.height : 800;
let w = isMaximized ? size.width : 1280;
win.setBounds({
height: h,
width: w,
x: Math.floor((size.width - w) / 2),
y: Math.floor((size.height - h) / 2),
});
});
ipcMain.on('window-close', () => {
win.close();
win.destroy();
app.quit();
app.exit();
})
新窗体打开控制台:win.webContents.openDevTools({ mode: "detach" });
预加载文件:preload.js:
window.ipcRenderer = require('electron').ipcRenderer;
window.shell = require('electron').shell;
window.fs = require('fs');
window.path = require('path');,
6,在package.json中添加:
"scripts": {
"start": "electron ."
},
7,将html+css+js创建的项目复制到当前文件夹,运行npm start,启动electron应用程序:

一,创建一个electron应用程序的更多相关文章
- 002.Create a web API with ASP.NET Core MVC and Visual Studio for Windows -- 【在windows上用vs与asp.net core mvc 创建一个 web api 程序】
Create a web API with ASP.NET Core MVC and Visual Studio for Windows 在windows上用vs与asp.net core mvc 创 ...
- 使用IDEA创建一个Servlet应用程序
使用IDEA创建一个Servlet应用程序 第一步:创建web应用 选择web application应用,之后填写项目名称等. 第二步:项目配置 在WEB-INF目录下创建两个文件夹:classes ...
- 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字“Hello Android”,并将应用程序的名称更改为“FirstApp”。
需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字"Hello Android",并将应用程序的名称更改为"Firs ...
- 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行
需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行 实现步骤: 打开 Android Studio,创建一个 Andr ...
- VB6 如何创建一个标准控制台程序
打开 VB6 并新建一个标准EXE程序,把窗口删掉,然后再加入一个模块. 在模块中加入AllocConsole.FreeConsole.SetConsoleTitle.Sleep的API声明: Pub ...
- Create an XAF Application 创建一个XAF应用程序
This topic describes how to use the Solution Wizard to create XAF applications and specify a connect ...
- 创建一个简单MyBatis程序
文章目录 MyBatis基础 MyBatis 简介 创建一个MyBatis程序 1. 创建Java项目 2. 加载MyBatis包 3. 编写POJO类和映射文件 4.创建mybatis-config ...
- 创建一个Windows Service 程序
1.新建Windows项目,选择"Windows服务"类型的项目. 2.在生成的Service1.cs中代码中写你需要的代码,如下: using System; using Sys ...
- 创建一个应用台程序,声明一个 int变量,并且初始化数组,通过while语句输出数组内的所有成员。
]{,,,,}; ; ) { Console.WriteLine("myNum[{0}]的值为{1}", s,myNum[s]); s++; } Console.ReadLine( ...
- 如何用VB.Net创建一个三层的数据库应用程序
[b]1.[/b][b]概论:[/b] 本文将介绍如何创建一个三层应用程序,并且将介绍如何创建一个Web Service服务. ADO.NET创建Windows三层结构应用程序的体系架构如下图所示: ...
随机推荐
- 关于htpasswd
什么是 htpasswd htpasswd是一个apache的内置工具,其生成的文件称之为htpasswd文件.htpasswd文件本身一个密码本,或者类似于数据库一样,用来存储一些密码(凭证)信息. ...
- allure环境配置生成测试报告
一.pycharm中安装下载allure:pip install allure-pytest.或者设置里面添加allure-pytest搜索安装 二.电脑中配置allure系统环境变量: allure ...
- OV5640数据的解码
为了配合开发板的使用,笔者搞了一个OV5640的摄像头模组,OV5640具体的相关手册及资料网上已经很多,感兴趣的都可以自行去查找,基本大同小异.这里也不把OV5640初始化的代码贴出来,因为就是简单 ...
- django限制表单上传图片的大小
django的ImageField没有提供控制上传图片的内置方法,我们可以在表单验证的过程中用clean函数来控制,搬运博客园 python小童鞋 ,可以通过重写ImageField的方法来控制上传图 ...
- Excel比较两列是否相等
通常的方式: 先将两列排序 通过判定如 =A1=B1 或者ctrl + \ (mac 是 command) 可以定位到差异的那行
- jdk 13 添加 jre
问题: 安装 jdk 13 版本后发现没有 jre . 解决方法: 1.进入 jdk 安装目录(如:D:\Program\Java\jdk-13.0.2\) 2.在 jdk 安装目录打开命令行,输入以 ...
- k8s_service
service 功能 主要是提供负载均衡和服务自动发现. pod的ip会随着升降级.销毁的操作改变.客户端不能直接访问pod的ip. service资源被用于在被访问的pod对象中添加一个有着固定IP ...
- R7-3 汉诺(Hanoi)塔问题
R7-3 汉诺(Hanoi)塔问题 分数 20 全屏浏览题目 切换布局 作者 张高燕 单位 浙大城市学院 古代某寺庙中有一个梵塔,塔内有3个座A.B和C,座A上放着64个大小不等的盘,其中大盘在下,小 ...
- 个人常用的win7快捷键
1.Win + D – 显示桌面 2.Win+L 锁定系统 3.Win + R – 打开运行窗口 4.Win+M 最小化所有窗口 当按下后当前所有窗口全都最小化.再次按下这个组 ...
- docker持久化数据存储
一.把数据存储到本地/opt/data目录下面,容器挂载到/data目录下面 [root@docker-1 ~]# docker run -itd --name www -v /opt/data:/d ...