Electron之初体验

Electron是一款使用HtmlCssJS开发跨平台桌面应用的框架。

话不多说直接开搞。

必坑指南:

  • node版本>=18.0

  • 使用淘宝镜像安装npm相关包;

  • 把下面两行配置放到你的npmrc文件中

    复制代码
    electron_mirror=https://npm.taobao.org/mirrors/electron/
    ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/

创建项目

使用下面命令创建一个空项目

shell 复制代码
mkdir electron-demo && cd electron-demo
npm init

安装electron依赖包,等待安装完成

shell 复制代码
cnpm install --save-dev electron

写代码

创建index.html

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <h1 id="hello"></h1>
</body>
</html>

创建preload.js,会在应用加载渲染进程之前执行这个文件的代码

js 复制代码
// dom内容加载成功的监听
window.addEventListener('DOMContentLoaded', () => {
	// 加载页面成功之后设置元素的内容
    const element = document.getElementById('hello')
    element.innerText = 'Hello,Electron!'
})

创建main.js,整个项目的入口js文件

js 复制代码
const { app, BrowserWindow } = require('electron')
const {join} = require("path");

// 创建应用窗口
const createWindow = () => {
    const win = new BrowserWindow({
    	// 窗口尺寸
        width: 800,
        height: 600,
        webPreferences: {
        	// 设置渲染前执行的js文件
            preload: join(__dirname, 'preload.js')
        }
    })
    // 加载的html文件
    win.loadFile('index.html')
}

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

启动项目

修改package.json

设置入口js文件

json 复制代码
  "main": "main.js",

设置启动脚本

json 复制代码
  "scripts": {
    "start": "electron ."
  },

执行脚本

shell 复制代码
npm start

正常情况会出现下面这个窗口

相关推荐
不会代码的小猴19 小时前
C++的第十一天笔记
java·前端·jvm
风止何安啊19 小时前
递归 VS 动态规划:从 “无限套娃计算器” 到 “积木式解题神器”
前端·javascript·算法
ohyeah20 小时前
使用 Vue 3 实现大模型流式输出:从零搭建一个简易对话 Demo
前端·vue.js·openai
GPTMirrors镜像系统20 小时前
JS 实现指定 UA 访问网站跳转弹窗提醒,解决夸克等浏览器兼容性问题
前端·javascript
踢球的打工仔20 小时前
前端html(2)
前端·算法·html
脾气有点小暴20 小时前
JavaScript 数据存储方法全解析:从基础到进阶
开发语言·javascript·ecmascript
BD_Marathon20 小时前
【JavaWeb】JS_JSON和Map_List_array之间的转换
javascript
Rysxt_20 小时前
Vue文件下载功能完整指南:从基础实现到进阶实战
前端·javascript·vue.js
一 乐20 小时前
智慧养老|基于springboot+小程序社区养老保障系统设计与实现(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端·小程序
冰暮流星21 小时前
css3网格布局2
前端·css·css3