02_快速启动 Demo 创建 Electron 项目、electron-forge 搭建一个 electron 项目、手动创建electron项目

快速启动 Demo 创建 Electron 项目

  • 一、克隆一个仓库、快速启动一个项目
  • [二、electron-forge 搭建一个 electron 项目](#二、electron-forge 搭建一个 electron 项目)
  • [三、手动搭建一个 electron 项目](#三、手动搭建一个 electron 项目)
  • [四、开发工具中配置 Eslint](#四、开发工具中配置 Eslint)

一、克隆一个仓库、快速启动一个项目

要使用 git 的话首先电脑上面需要安装 git

javascript 复制代码
//克隆示例项目的仓库
git clone https://github.com/electron/electron-quick-start.git
//进入这个仓库
cd electron-quick-start
// 安装依赖
npm/cnpm install   
//运行
npm run start
// 运行的第二种方式, 注意:命令后面有个 点
electron .

启动后的样式

代码目录结构分析:

二、electron-forge 搭建一个 electron 项目

electron-forge 相当于 electron 的一个脚手架,可以让我们更方便的创建、运行、打包 electron 项目。

Github 地址: https://github.com/electron-userland/electron-forge

官网地址: https://www.electronforge.io/
注意: electron-forge 的 Node 环境需要在 16.4.0 及以上

javascript 复制代码
// 创建项目
npx create-electron-app my-app
# or
yarn create electron-app my-app

// 运行项目
cd my-new-app
npm start

三、手动搭建一个 electron 项目

1、新建一个项目目录,例如:electrondemo

2、在 electrondemo 目录下面新建三个文件: index.html 、main.js、package.json

3、index.html 里面用 css 进行布局(以前怎么写现在还怎么写)

4、在 main.js 中写如下代码:

javascript 复制代码
const {app, BrowserWindow} = require('electron')
const path = require('path')
const createWindow = ()=>{
	const mainWindow = new BrowserWindow({
		width:800,
		height:600
	})
  // __dirname 表示获取我们当前目录, path.join 会将两个参数合并成 d://electrondemo/index.html
	mainWindow.loadFile(path.join(__dirname, 'index.html'))
}
// 监听 electron ready 事件创建窗口
app.on('ready', createWindow);
// 监听窗口关闭的事件,关闭的时候退出应用, macOs 需要排除
app.on('window-all-closed', ()=>{
	if(process.platform !=='darwin') {
		app.quit();
	}
})

// Macos 中点击 dock 中的应用图标的时候重新创建窗口
app.on('activate', ()=>{
  if(BrowserWindow.getAllWindows().length === 0) {
    createWindow()
  }
})

创建成功后的文件夹链接,点击进入下载

四、开发工具中配置 Eslint

Eslint 最初是由 Nicholas C.Zakas 于 2013年6月创建的开源项目。它的目标是 提供一个插件化的 JavaScript 代码检测工具

1、安装 cnpm i -g eslint

2、在项目中 运行 eslint --init

相关推荐
中文呀2 小时前
三维 GIS 离线缓存实战:逆向 CesiumOfflineCache,并亲手为它补上"自动更新"能力
前端
前进前进前进2 小时前
TRAE 全链路实战:做了一个警示牌一键生成器:纯 Canvas、单文件、零依赖
前端
小万7423 小时前
God‘s Eye View 深度解析:15 路公开信号 + CesiumJS 的浏览器级 OSINT 控制台,60 帧渲染的“真实间谍卫星模拟器”
前端
IT星宿4 小时前
浏览器标签页全是一个图标:我用名字哈希生成 favicon,让每个项目都有身份标识
前端
OpsEye4 小时前
大模型账单对账难:不同厂商 Token 统计口径差异怎么处理
javascript·ai编程
全栈项目管理程序猿4 小时前
ArcGIS JS 基础教程(32):体元系列 - VoxelSlice 体元切片
前端·javascript
拖孩6 小时前
AI 帮我写的小程序「厨菜记」上线满月了,挣了两百块!!!
前端·后端·微信小程序
用户360055579006 小时前
Kestrel_VLLM - 13 · 为什么排除 MoE FFN Tiling 与 Tensor Core
前端
Hilaku6 小时前
AI 流式输出都用 SSE,什么时候必须换 WebSocket?
前端·javascript·程序员
奇牙coding6 小时前
Codex CLI 升级后多文件编辑静默失效:config.yaml 枚举变更排查与修复指南
java·前端·javascript·ai