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

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

相关推荐
活宝小娜3 分钟前
vue不刷新浏览器更新页面的方法
前端·javascript·vue.js
程序视点5 分钟前
【Vue3新工具】Pinia.js:提升开发效率,更轻量、更高效的状态管理方案!
前端·javascript·vue.js·typescript·vue·ecmascript
coldriversnow6 分钟前
在Vue中,vue document.onkeydown 无效
前端·javascript·vue.js
我开心就好o7 分钟前
uniapp点左上角返回键, 重复来回跳转的问题 解决方案
前端·javascript·uni-app
开心工作室_kaic1 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
刚刚好ā1 小时前
js作用域超全介绍--全局作用域、局部作用、块级作用域
前端·javascript·vue.js·vue
沉默璇年2 小时前
react中useMemo的使用场景
前端·react.js·前端框架
yqcoder3 小时前
reactflow 中 useNodesState 模块作用
开发语言·前端·javascript
2401_882727573 小时前
BY组态-低代码web可视化组件
前端·后端·物联网·低代码·数学建模·前端框架
SoaringHeart3 小时前
Flutter进阶:基于 MLKit 的 OCR 文字识别
前端·flutter