新星计划 Electron+vue2 桌面应用 2 搭建及运行

news2024/11/24 16:31:29

基础内容:新星计划 Electron+vue2 桌面应用 1 基础_lsswear的博客-CSDN博客

根据使用过的经验和官网的描述,大概可以有四种方式:

  1. 自己创建项目(仅使用npm)
  2. 用Electron脚手架
  3. HBuilder编译为web,再用Electron编译
  4. vue脚手架,安装Electron,再编译

这次挨个试下,看哪个方便。第三种试过并且成功,但只是简单用个样例。

官网有个现成的例子,也大概用下。、

生命在于折腾~

一、用npm搭建项目

npm 最好是用比较新版的,不然可能有版本问题……超级麻烦。

npm -v
8.0.0

node -v
v16.11.1

npm init
npm install --save-dev electron

//报错内容
npm ERR! code 1
npm ERR! path D:\workspace\electron\test1\node_modules\electron
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node install.js
npm ERR! RequestError: read ECONNRESET
npm ERR!     at ClientRequest.<anonymous> (D:\workspace\electron\test1\node_modules\got\dist\source\core\index.js:970:111)
npm ERR!     at Object.onceWrapper (node:events:510:26)
npm ERR!     at ClientRequest.emit (node:events:402:35)
npm ERR!     at ClientRequest.origin.emit (D:\workspace\electron\test1\node_modules\@szmarczak\http-timer\dist\source\index.js:43:20)
npm ERR!     at TLSSocket.socketErrorListener (node:_http_client:447:9)
npm ERR!     at TLSSocket.emit (node:events:390:28)
npm ERR!     at emitErrorNT (node:internal/streams/destroy:157:8)
npm ERR!     at emitErrorCloseNT (node:internal/streams/destroy:122:3)
npm ERR!     at processTicksAndRejections (node:internal/process/task_queues:83:21)
npm ERR!     at TLSWrap.onStreamRead (node:internal/stream_base_commons:220:20)

npm ERR! A complete log of this run can be found in:
npm ERR!     D:\software\cood_tools\node_data\node_cache\_logs\2023-05-19T01_30_29_190Z-debug.log

根据这个报错内容“RequestError: read ECONNRESET”,百度结果是链接断开,大概是源的问题。

//查看本地源
npm get registry
https://registry.npmmirror.com/
//更换源
npm config set registry http://registry.npm.taobao.org/

npm install --save-dev electron
added 72 packages in 8m

下载是真的慢……但是成功。

//package.json
{
  "name": "my-electron-app",
  "version": "1.0.0",
  "description": "Hello World!",
  "main": "main.js",
  "scripts": {
    "start": "electron .",//手动加的
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Jane Doe",
  "license": "MIT",
  "devDependencies": {
    "electron": "23.1.3"
  }
}

之后仅记录bug和最后结果。

报错

1、Cannot find module D: workspace electron'testivindexjs' please verify that thepackagejson has a valid "main" entry

按官网教程,简单写个main.js改完package.json,运行 npm run start,然后报错……

这个原因是因为我本地文件package.json没改main,默认是index.js。

根据官网index.html中http头加安全策略:内容安全策略(CSP) - HTTP | MDN

成功运行~

2、requier is not defined

这个应该是依赖找不到,因为require打错了……

3、调试

一开始我没不太懂怎么调试,然后仔细看了下编译好的界面下的选项。

 快捷键 ctrl+shift+i,这个之后可以代码设置。

包括start 命令中都能放参数,这些之后再说。

giee:https://gitee.com/lsswear/wj_test/tree/master/electron/test1

官网自带的样例项目/(ㄒoㄒ)/~~ npm install 半天没反应 pass掉……

二、用Electron脚手架

简单用了下相当好使。

npm install --save-dev @electron-forge/cli//感觉最好全局安装
npm init electron-app@latest my-app//创建项目
npm init electron-app@latest my-app -- --template=webpack//带模板创建
npm run start //运行
npm run make//编译到out文件夹 编译出exe执行文件和可安装文件
npm run publish//编译出可发布的文件 应该是可安装文件

在里面加个vue2试试~查了下 vue2 不能像其他以来直接install,但是有个Electron-vue,可以试试。

这个脚手架出来都是一样,不做例子,目前也没啥错。

三、用HBuilder

😀这个我熟~

新建项目编译成web h5,然后到编译好的文件加下,用全局的Electron直接编译。

参照:使用uniapp开发的h5打包electron桌面端应用 - 新一技术

四、vue脚手架

有Electron-vue集成好vue和 electron,但不知道编译的效果怎么样。

报webpack版本问题。

//本机vue版本
vue -V
@vue/cli 5.0.8
//
vue init simulatedgreg/electron-vue test4
cd test4
npm install
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: test4@0.0.1
npm ERR! Found: webpack@4.46.0
npm ERR! node_modules/webpack
npm ERR!   dev webpack@"^4.15.1" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer webpack@"^2.0.0 || ^3.0.0" from karma-webpack@3.0.5
npm ERR! node_modules/karma-webpack
npm ERR!   dev karma-webpack@"^3.0.0" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR! See D:\software\cood_tools\node_data\node_cache\eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:
npm ERR!     D:\software\cood_tools\node_data\node_cache\_logs\2023-05-19T08_22_26_571Z-debug.log
//package.json
 "node-loader": "^0.6.0",
 "node-sass": "^4.9.2",//sass
 "sass-loader": "^7.0.3",
 "style-loader": "^0.21.0",
 "url-loader": "^1.0.1",
 "vue-html-loader": "^1.2.4",
 "vue-loader": "^15.2.4",
 "vue-style-loader": "^4.1.0",
 "vue-template-compiler": "^2.5.16",
 "webpack-cli": "^3.0.8",
 "webpack": "^4.15.1",//webpack版本要求
 "webpack-dev-server": "^3.1.4",
 "webpack-hot-middleware": "^2.22.2",
 "webpack-merge": "^4.1.3"

vue-cli有4版本和5版本,4版本对应webpack4,5版本对应webpack5,之前我本机也是4。

之所以要换成5,也是因为用sass……具体见:vue2 sass 安装及使用_vue2安装sass_lsswear的博客-CSDN博客

使用vue脚手架,安装electron-builder,详见:如何简单搭建一个Electron+vue2.0桌面应用 | 天涯小磊

URL | Node.js v18.16.0 Documentation

vue create 项目名
npm install --save-dev electron
npm install --save-dev electron-packager

五、根据大佬的经验

教程:vue3+electron开发桌面软件入门与实战(1)——创建electron+vue3主体项目_electron vue3_中二少年学编程的博客-CSDN博客

 我这属于不闯南墙不死心……

大概就是创建vue项目,下载electron,再配置文件。

vue-cli走起!~

vue create test5
vue install --save-dev electron

//添加main.js 
//主要为以下语句 加载打包后的文件
 mainWindow.loadURL(url.format({
        pathname: path.join(app.getAppPath(),'dist/index.html'),
        protocol: 'file:',//协议
        slashes: true//slashes属性为布尔值,如果协议protocol冒号后根的是两个斜杠(/),那么值为true
    }));

//vue.config.js 修改
//修改编译的文件路径 否走会显示路径找不到
module.exports = defineConfig({
  transpileDependencies: true,
  publicPath:""//添加
})

//package.json 修改
"main": "main.js",

//运行
npm run serve
npm run start

//编译 修改package.json
 "packager": "electron-packager ./ HelloWorld-win=x32  --out ./bin --electron-version 13.0.1 --overwrite  --icon=./static/img/logo.ico"
//可以加 编译命令 和命令行直接编译一样的

相关文章:

npm切换淘宝镜像_bearWeb的博客-CSDN博客

 URL | Node.js v18.16.0 Documentation

 报错 Invalid options in vue.config.js: "baseUrl" is not allowed 问题解决 - 开发者博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MSP432笔记4:时钟与滴答计时器

所用单片机型号&#xff1a;MSP432P401r 今日继续更新我的MSP432电赛速通笔记&#xff1a; 提示&#xff1a; 本节内容相当于讲述delay_ms&#xff08;&#xff09; 和delay_us&#xff08;&#xff09; 俩延时函数的由来&#xff0c; 所以不需要花费过多时间斟酌 MSP432单…

论文阅读_音频表示_wav2vec_2.0

论文信息 name_en: wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations name_ch: wav2vec 2.0&#xff1a;语音表示自监督学习框架 paper_addr: http://arxiv.org/abs/2006.11477 date_read: 2023-04-27 date_publish: 2020-10-22 tags: [‘深…

C++深度解析:虚函数的使用与避免

C深度解析&#xff1a;虚函数的使用与避免 1. 虚函数的基本概念与原理 (Basic Concepts and Principles of Virtual Functions)1.1 虚函数的定义与作用 (Definition and Role of Virtual Functions)1.2 虚函数的底层实现 (Underlying Implementation of Virtual Functions)1.3 …

【CANN训练营0基础赢满分秘籍】进阶班 Atlas 200I DK 智能小车

1 智能小车三维结构设计 1.1 基本模块 坚固酷炫结构模块运动控制模块超声波传感器模块摄像头视觉模块其他传感器模块 1.2 结构设计基本原则 从零开始设计并搭建智能小车&#xff0c;在满足外观要求的基础上&#xff0c;要满足小车运转过程中的运动干涉率为O&#xff0c;并且…

【CANN训练营0基础赢满分秘籍】进阶班 应用开发深入讲解

1 AIPP AIPP (Artificial Intelligence Pre-Processing)人工智能预处理&#xff0c;在AI Corfe上完成数据预处理。 1.1 静态AIPP 构造AIPP配置文件*.cfg使能静态AIPP&#xff0c;将其配置参数保存在模型文件中。 atc --framework3--soc_versionS[soc_version) --model SHOM…

基于51单片机的电子琴Protues仿真设计

一、设计背景 基于51单片机的电子琴是一款由51单片机控制器、音频模块和硬件阵列组成的数字化乐器。它可以模拟各种乐器的音效&#xff0c;同时也具有许多常规电子琴所没有的高级功能。 首先&#xff0c;这种电子琴是以数字信号处理技术为基础的。通过软件编程&#xff0c;将…

【JUC】Java对象内存布局和对象头

【JUC】Java对象内存布局和对象头 文章目录 【JUC】Java对象内存布局和对象头1. 对象的内存布局1.1 对象头1.1.1 对象标记1.1.2 类元信息/类型指针 1.2 实例数据1.3 对齐填充 2. 测试 1. 对象的内存布局 在 HotSpot 虚拟机里&#xff0c;对象在堆内存中的存储布局可以划分为三…

MSP432学习笔记6:中断优先级管理

所用型号&#xff1a;MSP432P401R 今日继续我的MSP432电赛速通之路。 主要学习的是&#xff1a;中断优先级管理、软件挂起中断、屏蔽中断优先级 目录 MSP432具有8级可编程的中断优先级。 中断优先级管理库函数&#xff1a; 软件挂起中断&#xff1a; 屏蔽中断优先级&#…

微信小程序富文本插件mp-html

使用场景&#xff1a; 偏偏后端传过来的数据又要用到富文本标签&#xff0c;然后找了很多组件&#xff0c;要不就是下载量低&#xff0c;要不就是里面功能太少&#xff0c;只有这款mp-html组件深得我心&#xff0c;里面功能丰富&#xff0c;简单实用&#xff0c;真的绝绝子&…

DMA直接存储器存取

目录 存储器映像 寄存器 DMA框图 DMA基本结构 DMA请求映射 数据宽度与对齐 ​编辑 存储器到存储器 ​编辑 外设与存储器 来源b站江科大stm3入门教程 存储器映像 寄存器 DMA框图 AHB从设备&#xff08;DMA自身的寄存器&#xff09;连接在总线矩阵右侧的AHB总线上 所以DMA既…

LeetCode:509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

509. 斐波那契数 题目 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n) F(n - 1) F(n - 2)&#xff0c;…

无底线内卷?谈谈如何在职场中实现人生巅峰

在竞争激烈的职场上&#xff0c;各种职场难题时常出现&#xff0c;如何进行有效沟通、如何应对工作压力、如何提升职业能力等&#xff0c;这都是需要去克服的问题。 1. 尝试人际沟通A&#xff1a;TO 企业B&#xff1a;TO 员工 2. 适应工作压力A&#xff1a;原因B&#xff1a;TO…

ROS2 入门应用 创建启动文件(C++)

ROS2 入门应用 创建启动文件&#xff08;C&#xff09; 1. 创建功能包2. 添加依赖关系3. 添加编译信息4. 创建启动文件4.1. Python4.2. XML4.3. YAML 5. 编译和运行 1. 创建功能包 用Python、XML或YAML编写的启动文件可以启动和停止不同的节点&#xff0c;以及触发和处理各种事…

法规标准-GB/T 39323标准解读(2020版)

GB/T 39323是做什么的&#xff1f; GB/T 39323全称为乘用车车道保持辅助(LKA)系统性能要求及试验方法&#xff0c;其中主要描述了LKA系统的功能要求及测试要求 一般要求 1.系统应能在状态良好的车道边线环境下识别车辆与车道边线的相对位置&#xff0c;辅助驾驶员将车辆保持…

76.建立一个主体样式第二部分

上节课的时候我们完成的页面是这个样子&#xff01; ● 之后我们通过绝对定位来解决位置定位的问题 .header-container {width: 1200px;margin: 0 auto;position: absolute;left: 50%;top: 50%; }header {height: 100vh;background-color: orange;position: relative; }● 之…

通过Python的PyPDF2库提取pdf中的文字

文章目录 前言一、PyPDF2库是什么&#xff1f;二、安装PyPDF2库三、查看PyPDF2库版本四、使用方法1.引入库2.定义pdf路径3.打开PDF文件4.创建PDF阅读器对象5.获取PDF文件中的页数6.遍历每一页7.获取当前页内容8.提取当前页文本9.打印当前页文本10.效果 总结 前言 一、PyPDF2库…

【2023 · CANN训练营第一季】初识新一代开发者套件 Atlas 200I DK A2---介绍Atlas 200I DK A2的基本使用

1.Atlas 200I DK A2开发者套件板介绍 应用场景&#xff1a;昇腾AI开发者上手学习、实践创新场景&#xff0c;提供配套软硬件 关键特性规格描述形态135mm120mm44mmAI 算力整数精度&#xff08;INT8):8 TOPS 半精度&#xff08;FP16): 4 TFLOPS摄像头接口2* MIPI - CSI 支持两个…

研报精选230521

目录 【行业230521山西证券】煤炭行业周报&#xff1a;量减需增进口倒挂&#xff0c;煤炭价格企稳反弹 【行业230521东吴证券】大炼化周报&#xff1a;油价弱势震荡&#xff0c;下游表现疲软 【行业230521东海证券】4月社零报告专题&#xff1a;低基数下创新高&#xff0c;实质…

MyBatisX

文章目录 MyBatisXMybatis带参方法 动态条件查询多条件查询多条件-动态条件查询ifchoose(when,otherwise) 添加添加-主键返回 修改修改全部字段修改动态字段 删除MyBatis参数传递多个参数单个参数 MyBatis注解完成增删改查 MyBatisX pojo类中的属性名要和数据库中的一致才能实现…

ARM学习笔记_2 模式,寄存器,流水线

ARM arm体积小功耗低性能高&#xff0c;支持thumb ARM双指令集&#xff0c;兼容8/16位器件&#xff1b;大量使用寄存器&#xff0c;指令定长&#xff0c;寻址简单。 ARM是32位架构&#xff0c;Word 32bit&#xff0c; half Word 16bit. 模式 用户模式是用户程序的模式&#…