node.js配合electron打包成安装包

node.js配合electron打包成为安装包

最近在忙别的事情,好久不出一期博客了,网上有很多的electron打包成为桌面软件的教程,那这一期我出一期打包成安装包的教程

文章目录

  • 系列文章目录
  • 前言
  • 一、electron是什么?
  • 二、使用步骤
    • 1.首先准备一个node.js工程库
    • 2.导入electron库
  • 总结


前言

提示:这一篇就浅浅的教大家如何把chatgpt配合electron框架打包成为客户端

在之前学习到electron框架的时候总是想着如何才能把它打包成安装包让别人安装,可以实时让自己写好的软件在别人的电脑桌面端能用,但是网上找了好久也没翻出来,最后配合chatgpt,翻文档才得以解决,所以今天记录一下我是怎们做到的吧.


一、electron是什么?

介绍:我的简单理解就是将网页端的内容转成桌面端,可以实现快速使用

二、使用步骤

1.1 首先先初始化一个node.js工程

npm init -y

 1.2 导入electron库

npm install --save-dev electron    这里一定要使用--save-dev的方式安装要不然会和接下来的安装包打包变得冲突

 1.3 准备好一个主进程文件

这里面你需要看你的node.js项目中的package.JSON文件里面的main是不是指向index.js

如果不是请自行修改一下

 1.4 接下来往index.js中写入代码

//导入所需要的模块
const { BrowserWindow, app, Menu } = require("electron");
// 控制应用程序的事件生命周期。// 当 Electron 完成初始化时,触发一次
app.whenReady().then(() => {//创建一个electron项目的窗口const mainWindow = new BrowserWindow({//窗口的长度和高度width: 1200,height: 800,
//打包成为的安装包的logo
icon: "./icon.png",});//这里写一个自定义菜单栏,chatgpt用的时候老是卡住,所以做了一个刷新效果const template = [{label: "刷新页面",click: async () => {// 调用 `reload` 方法刷新当前页面const webContents = BrowserWindow.getFocusedWindow().webContents;webContents.reload();},},];//这里就是将自己写好的菜单栏给放到菜单栏该有的位置const senu = Menu.buildFromTemplate(template);Menu.setApplicationMenu(senu);//调用loadURL方法,让其加载到chatgpt的首页mainWindow.loadURL("https://chat.openai.com/chat");
});

1. 5 安装打包模块(一定要按照下面给的安装命令安装)

npm install --save-dev electron-builder 

安装node.js打包命令

npm install packager 

顺便安装了node.js的内置模块fs,和path

npm install fs 

npm install path 

npm install build

以上模块请记得一定要安装

 1.6 接下来配置package.json的scripts里面的启动命令

"scripts": {"test": "echo \"Error: no test specified\" && exit 1","dev": "electron .","build": "electron-builder"},

现在的配置文件应该是这个样子(前提是:按照上面的步骤进行安装了)

{"name": "chatgpt02","version": "1.0.0","description": "","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1","dev": "electron .","build": "electron-builder"},"keywords": [],"author": "","license": "ISC","devDependencies": {"electron": "^24.0.0","electron-builder": "^23.6.0"},"dependencies": {"build": "^0.1.4","fs": "^0.0.1-security","packager": "^0.1.9","path": "^0.12.7"}
}

 1.7 配置最重要的打包安装包步骤

  1. 先创建一个electron-builder.yml文件
  2. 理解了下面注释之后在完成之后一定记得把注释里面的内容删除了)往文件中填写下面代码
    //这里的appid可以理解成唯一标注的码
    appId: com.example.myapp
    //这里productName打包形成的桌面端软件名称
    productName: chatgpt
    //打包成为dist目录
    directories:output: dist
    //perMachine: true: 指定安装程序是针对整个计算机还是当前用户的。如果为 true,则安装程序将被安装到所有用户的计算机上;如果为 false,则安装程序将只被安装到当前用户的计算机上。
    //oneClick: false: 指定是否使用一键安装模式。如果为 true,则安装程序将以默认设置直接安装,不会显示向导式的安装过程;如果为 false,则安装程序将显示向导式的安装过程,以允许用户更好地控制安装过程。
    //allowElevation: true: 指定是否允许请求管理员权限以执行某些操作。如果为 true,则安装程序可以请求管理员权限以执行需要管理员权限的操作;如果为 false,则安装程序将无法执行需要管理员权限的操作。
    //allowToChangeInstallationDirectory: true: 指定是否允许用户更改安装目录。如果为 true,则用户可以选择更改安装目录;如果为 false,则用户将无法更改安装目录,安装程序将使用预定义的目录进行安装。
    nsis:perMachine: trueoneClick: falseallowElevation: trueallowToChangeInstallationDirectory: true
    //在windows系统中打包好的logo
    win:icon: path/to/icon.pngtarget: nsis
    //打包下面几个文件夹
    files:- build/- node_modules/- package.json- index.js
    

    删掉注释之后

    appId: com.example.myappproductName: chatgpt
    directories:output: dist
    nsis:perMachine: trueoneClick: falseallowElevation: trueallowToChangeInstallationDirectory: true
    win:icon: path/to/icon.pngtarget: nsis
    files:- build/- node_modules/- package.json- index.js
    

 1.8 下面是对于logo的处理

  1. 创建一个forge.config.js
  2. 往文件中添加
    module.exports = {packagerConfig: {icon: "icon",},
    };
    

  3.  以上就是整个文件的目录了

 1.9 运行npm run build安装

 控制台输出此时就完毕了

1.10 找到dist目录下面的chatgpt Setup 1.0.0.exe文件就可以进行安装了

总结

写到这里我今天的博客也就结束了

如果大家有不懂的欢迎评论区评论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38963.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++:在“替代”中迎来“转机”的 2022 年!

【CSDN 编者按】告别各种不确定的 2022,我们迎来了崭新的 2023 年,岁末年初,大家都有写总结的习惯,回顾与展望。作为知名的 C 开发人员,Bartlomiej Filipek 在自己的博客上对 C 2022 进行了非常全面的总结。CSDN 组织译…

chatgpt赋能python:Python如何避免代码重复

Python如何避免代码重复 作为一名有10年Python编程经验的工程师,我深知代码重复会降低程序的可维护性,使代码变得混乱和难以扩展。因此,我想在这篇文章中介绍一些技术和最佳实践来避免Python代码重复。 为什么要避免重复代码? …

统计文本文件中的英文单词数量

python 3.5实现 思路: 读取txt文本内容,一行一行读取,去掉换行符,讲文本内容用空格分开,即以单词为单位将文本分开,将单词存到list列表中,使用dict.fromkeys(list,0)方法将列表转换成字典&…

用Python统计中英文词频

本设计基于Python3.6实现中英文词频统计功能 英文词频统计 统计哈姆雷特英文版,txt格式文件地址: hamlet.txt 思路分析: 获取文件中词汇转换为统一格式,如小写或者大写切割词汇循环遍历进行统计打印输出 代码如下&#xff1…

WordCount词频统计

WordCount词频统计 from educoder实训 实训项目地址:https://www.educoder.net/shixuns/aekgf6pz/challenges 本关任务 词频统计是最能体现MapReduce思想的程序,结构简单,上手容易。 词频统计的大致功能是:统计单个或者多个文…

WordCount单词统计笔记

1.在本机的/root目录下,依次创建文件夹data,文本文件word.txt. mkdir -p /root/data vim /root/data/word.txt键入i,进入编辑模式,输入如下内容: hello world hadoop hdfs qingjiao hadoop hongya hdfs qingjiao qingjiao hadoop hongya键入…

用python统计你的文章里每个英文单词的数量

p i heared a story about you #你的文章段 linesp.strip().split(\n) words_cnt{} for line in lines:lineline.replace(,,).lower() #逗号都用英文状态的wordsline.split( ) #括号里面的单引号里有空格for word in words:words_cnt[word]words_cnt.get(word,0)1 words_lstl…

Python实现统计文本当中单词的数量,

这是阿里巴巴2016年的一道面试题: 统计英文文章中单词出现的次数,并且输出出现次数的前10个单词 文本如下: Accessing Text from the Web and from Disk Electronic Books A small sample of texts from Project Gutenberg appears in the …

wordcount单词词频统计

单词出现的总次数 1、WordCount概述 WordCount算是大数据计算领域经典的入门案例,相当于Hello World。 虽然WordCount业务极其简单,但是希望能够通过案例感受背后MapReduce的执行流程和默认的行为机制,这 才是关键。 2、WordCount编程实现…

Python实现统计文本中各单词数量

Python实现统计文本中各单词数量 代码运行结果 代码 import strings not talk,not helo show me your code hello helo for i in s:变例s中的字符,如果属于标点符号则替换成空格if i in string.punctuation:s s.replace(i, ) # print(s) lst s.split() # s被空…

华为机试—统计单词个数(map)

输入n个单词&#xff0c;统计各个单词出现的个数 #include <iostream> #include <map> #include <string> using namespace std;int main() {map<string,int> k;string word;while(cin>>word)k[word];for(map<string,int>::iterator ik.be…

[云炬python3玩转机器学习] 5-7,8 多元线性回归正规解及其实现

08 实现我们自己的 Linear Regression import numpy as np import matplotlib.pyplot as plt from sklearn import datasets import datetime;print("Run by CYJ,",datetime.datetime.now()) Run by CYJ, 2022-01-20 20:06:04.130127 boston datasets.load_boston()…

手机号验证码登录的思路

引言 当前很多web端的应用登录方式主要分为以下几种&#xff1a; 账号密码登录手机号验证码登录扫码登录 这里我主要说一下我对于手机号验证码登录的思路&#xff0c;如果有遗漏或者差错的地方&#xff0c;请指正&#xff1b; 整体流程 大致流程如下&#xff1a; 大致就是…

手机验证码登录,账号登录结合

本项目基于腾讯外包框架&#xff08;wei框架&#xff09; 地址&#xff1a;https://github.com/twinh/wei/tree/master/docs/zh-CN#wei HTML页面&#xff1a; 【基于bootstrap前端框架】 头部&#xff1a;<ul id"js-reset-tabs" class"nav tab-underline…

手机号验证登录用例

手机号验证登录 1.手机号验证登录是我们现在比较常见的登录方式&#xff0c;下面分享一下基本的用例的编写。能帮助您是我的荣幸&#xff0c;不喜勿喷&#xff0c;谢谢&#xff01;

手机号验证码登录

登录入口 1.app 正常登录入口 2.app 网页登录&#xff0c;比如分享直播卡片时&#xff0c;进入直播间需要先进行登录 3.pc 登录 一&#xff0c;app常见的登录方式 1.手机号验证码登录 2.用户名密码登录 3.一键登录 二&#xff0c;手机验证码登录示意图 三&#xff0c;流…

chatgpt赋能python:Python代码的快捷键:让编程速度更加快速高效

Python代码的快捷键&#xff1a;让编程速度更加快速高效 Python是一种面向对象、直译式计算机程序设计语言&#xff0c;备受程序员喜爱。虽然Python本身已经趋于简洁易读&#xff0c;但使用Python代码编辑器的快捷键可以进一步提高编程效率&#xff0c;帮助合理利用时间。 为…

chatgpt赋能python:Python实现滚动小球

Python实现滚动小球 Python是一种高级编程语言&#xff0c;可以用于开发各种类型的应用程序。在此我们将介绍如何使用Python编写代码实现滚动小球。这个小球会在屏幕上滚动&#xff0c;给用户一个视觉效果。 实现滚动小球的Python代码 import pygameBLACK (0, 0, 0) WHITE …

流浪地球2的科学幻想与现实中的未来计算机科技

作为一个科幻迷、《三体》迷&#xff0c;从小时候第一次看《珊瑚岛上的死光》开始&#xff0c;一直期待一部国产科幻电影。等待了40余年&#xff0c;有生之年终于如愿以偿。 周末二刷了《流浪地球2》。丁老师认为这部科幻电影已经超越了1&#xff0c;以及原著&#xff0c;成为…

还在为投稿发愁吗?ICCVIT 2023,一个计算机、视觉与智能技术国际会议

◆ChatGPT热潮带来的行业革新大行其道&#xff0c;相关区块链、信息安全、视觉、机器学习....产业必将带来诸多变革。 本文为大家梳理了近期可投的4则EI检索的国际会议&#xff0c;均可推荐发表SCI&#xff0c;还有超多IEEE Fellow主讲&#xff0c;不仅涵盖计算机各个学科方向&…