Electron学习-快速搭建app demo

作者: 狐狸家的鱼

Github: 八至

一.安装Node


1.从node官网下载 ,最好安装.msi后缀名的文件,新手可以查看安装教程进行安装。

2.然后cmd进入命令窗口,输入npm -v查看node当前版本,

二.创建文件并初始化


1.在自己喜欢的盘里新建项目文件,我是  E:\Electron\resources\app,在此文件目录app下打开命令窗口,按住shift ,右击空白处,选择在此处打开powershell命令窗口

2.在命令窗口输入:npm init,然后一直回车,直到package.json文件完成

3.在VS code中打开项目文件,新建Index.html 和mian.js,并将json文件中的主进程配置成:"main":"main.js"

4.在项目文件下安装electron :npm install electron,不建议全局安装,不使用npm install electron -g

5.在main.js文件中写入如下代码:

/******************** ** main.js文件内容 ** ********************/
 // 导入electron模块
const electron = require('electron')
// 应用生命控制app const app = electron.app
 // 创建一个原生浏览器窗口
const BrowserWindow = electron.BrowserWindow
// 引入path和URL模块
 const path = require('path') const url = require('url')
 // 保持对窗口对象的全局引用
 // 否则,窗口对象会在JS对象垃圾回收时自动关闭
let mainWindow function createWindow () {
 // 创建浏览窗口
mainWindow = new BrowserWindow({width: 800, height: 600})
 // 加载app的index.html文件
mainWindow.loadURL(url.format({
 pathname: path.join(__dirname, 'index.html'), protocol: 'file:', slashes: true }))
 // Open the DevTools.打开开发者工具DevTools
 // mainWindow.webContents.openDevTools()
// Emitted when the window is closed. 当窗口被关闭时,触发此事件 mainWindow.on('closed', function () {
 // 取消引用 window 对象,如果你的应用支持多窗口的话,
 // 通常会把多个 window 对象存放在一个数组里面,
 // 与此同时,你应该删除相应的元素。
mainWindow = null }) }
// Electron初始化完成,并准备好创建浏览窗口之后
// 调用函数createWindow
// 一些API也只有在此事件(ready)触发之后才能使用
app.on('ready', createWindow)
 // 当所有窗口被关闭时,即事件window-all-closed被触发后,退出程序 app.on('window-all-closed', function () {
// 对于MacOS用户,往往需要使用command+q完全退出程序
// 否则,绝大部分其菜单栏会保持激活状态。即程序并未完全退出。
// 对于非Darwin平台来讲,如Windows,则直接退出程序
 if (process.platform !== 'darwin') { app.quit() } })
// 若程序activate事件被触发时,执行该操作,创建一个新窗口
app.on('activate', function () {
// 在Mac系统中,若其他窗口都已关闭,点击dock面板上的程序图标时
// 会重新创建一个窗口
 if (mainWindow === null) { createWindow() } })
// 在这文件,你可以续写应用剩下主进程代码。 // 也可以拆分成几个文件,然后用 require 导入

6.index.html写入

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>
<!-- 再次渲染进程中,你可以使用任何Node.js的API --> We are using Node.js <script>document.write(process.versions.node)</script>, Chromium <script>document.write(process.versions.chrome)</script>, and Electron <script>document.write(process.versions.electron)</script>. </body> <script> // 同样的,你也可以在此进程中引入其他文件 require('./renderer.js') </script>
</html>

7.局部安装要在.\node_modules\.bin\目录下运行命令electron.   全局安装就在根目录文件下运行electron.

8.应用程序打包,详情可以参考官方

9.如果想要让app代码不可见,可进行压缩,具体也可看官方文档进行操作


也是第一次了解学习Electron,还在摸索中,有不足可以指点一二哈。

Electron入门笔记(一)-自己快速搭建一个app demo的更多相关文章

  1. 快速搭建一个直播Demo

    缘由 最近帮朋友看一个直播网站的源码,发现这份直播源码借助 阿里云 .腾讯云这些大公司提供的SDK 可以非常方便的搭建一个直播网站.下面我们来给大家讲解下如何借助 腾讯云 我们搭建一个简易的 直播示例 ...

  2. springboot入门(一)--快速搭建一个springboot框架

    原文出处 前言在开始之前先简单介绍一下springboot,springboot作为一个微框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速.敏捷地开发新一代基于Spring框架 ...

  3. vue 快速入门 系列 —— 使用 vue-cli 3 搭建一个项目(上)

    其他章节请看: vue 快速入门 系列 使用 vue-cli 3 搭建一个项目(上) 前面我们已经学习了一个成熟的脚手架(vue-cli),笔者希望通过这个脚手架快速搭建系统(或项目).而展开搭建最好 ...

  4. vue 快速入门 系列 —— 使用 vue-cli 3 搭建一个项目(下)

    其他章节请看: vue 快速入门 系列 使用 vue-cli 3 搭建一个项目(下) 上篇 我们已经成功引入 element-ui.axios.mock.iconfont.nprogress,本篇继续 ...

  5. 【Head First Servlets and JSP】笔记6:什么是响应首部 & 快速搭建一个简单的测试环境

    搭建简单的测试环境 什么是响应首部 最简单的响应首部——Content-Type 设置响应首部 请求重定向与响应首部 在浏览器中查看Response Headers 1.先快速搭建一个简单的测试环境, ...

  6. 快速搭建一个Quartz定时任务【转载,好文 ,值得收藏,亲身试用 效果不错】

    Quartz.NET 入门 概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔 ...

  7. 快速搭建一个“微视”类短视频 App

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云视频发表于云+社区专栏 关注公众号"腾讯云视频",一键获取 技术干货 | 优惠活动 | 视频方案 " ...

  8. 如何快速搭建一个 Node.JS 项目并进入开发?

    了解:如何快速搭建一个项目并进入开发? 在此不概述 Node.JS 的历史以及发展过程. 因为之前接触过通过 Java 开发语言,所以明确地知道一个服务器所需的文件,以及一个服务器所需要的操作. 那么 ...

  9. NodeJS 最快速搭建一个HttpServer

    最快速搭建一个HttpServer 在目录里放一个index.html cd D:\Web\InternalWeb start http-server -i -p 8081

随机推荐

  1. (C/C++)区别:数组与指针,指针与引用

    1.数组跟指针的区别 数组要么在静态存储区被创建(如全局数组),要么在栈上被创建.数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变. 指针可以随时指向任意类型 ...

  2. 老男孩python学习自修第十四天【序列化和json】

    序列化是使用二进制的方式加密列表,字典或集合,反序列化是解密的过程:序列化开启了两个独立进程进行数据交互的通路 使用pickle进行序列化和反序列化 例如: pickle_test.py #!/usr ...

  3. jquery的show()和hide()方法

    显示和隐藏元素的方法 相当于CSS中的display属性 show()方法,相当于display:block hide()方法,相当于display:none

  4. vue 思維導圖

    vue概念:vue是一個輕量級的javascript庫:是一種漸進式的框架:vue可以實現數據視圖雙向綁定. vue基礎語法:實例化.條件.循環 vue重頭戲:動畫.組件.過濾.ajax.自定義組件. ...

  5. php1

    正则表达式 $p = '/name:(\w+\s?\w+)/'; $str = "name:steven jobs"; preg_match($p, $str, $match); ...

  6. 使用 Travis CI 自动部署 Hexo 站点至 GitHub Pages

    Hexo 与 GitHub Pages 安装配置请参考:Hexo 与 GitHub Pages 本文源码与生成的静态文件在同一项目下,源码在 source 分支,静态文件在 master 分支 新增 ...

  7. sql练习题及经典题

    https://blog.csdn.net/mrbcy/article/details/68965271 经典例题 19.查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录. S ...

  8. C++:如何正确的定义一个接口类

    C++中如何定义接口类?首先给接口类下了定义:接口类应该是只提供方法声明,而自身不提供方法定义的抽象类.接口类自身不能实例化,接口类的方法定义/实现只能由接口类的子类来完成. 而对于C++,其接口类一 ...

  9. P1508 Likecloud-吃、吃、吃

    数字金字塔3条路 f[i][j]=max(max(f[i-1][j],f[i-1][j-1]),f[i-1][j+1])+a[i][j]; #include<bits/stdc++.h> ...

  10. Django+Xadmin打造在线教育系统(八)

    首页和全局404,500配置 轮播图 公开课 授课机构 新建view ## 首页view class IndexView(View): def get(self,request): # 取出轮播图 a ...