elctron项目_electron项目结构介绍

#项目结构

my-project

├─ .electron-vue(webpack配置文件)│  └─ build.js(生产环境构建代码)

│  └─ dev-client.js(热加载相关)

│  └─ dev-runner.js(开发环境启动入口)

│  └─ webpack.main.config.js(主进程配置文件)

│  └─ webpack.renderer.config.js(渲染进程配置文件)

│  └─ webpack.web.config.js

├─ build(是文件打包使用的)

│ └─ win-unpacked/

│  │  ├─ locales(地区语言资源包)

│  │  ├─ resources(地区语言资源包)

│  │  ├─ *.dll(动态链接库)├─ dist(打包后的文件资源)

│ ├─ electron/├─ node_modules/(依赖目录)├─ src(源码)

│ ├─ main(主进程)

│ │ ├─ index.dev.js(捆绑index.js)

│ │ └─ index.js(主进程的进程JS)

│ ├─ renderer(渲染进程)

│  │  ├─ assets/(放置静态资源,如图片,视频,静态配置)

│ │ ├─ components/(放置vue页面)│ │ ├─ router/(放置页面路由)│ │ ├─ store/(放置公共模块,如vuex)│ │ ├─ App.vue

│ │ └─ main.js

│ └─ index.ejs

├─static/(静态文件)├─ test

│ ├─ e2e

│ │ ├─ specs/│ │ ├─ index.js

│ │ └─ utils.js

│ ├─ unit

│ │ ├─ specs/│ │ ├─ index.js

│ │ └─ karma.config.js

│ └─ .eslintrc

#全局配置文件

├─ .babelrc

├─ .eslintignore

├─ .eslintrc.js

├─ .gitignore

├─ package.json

└─ README.md

#语法规范

require 是 AMD规范引入方式

require是运行时调用,所以require理论上可以运用在代码的任何地方

require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量

import是es6的一个语法标准,如果要兼容浏览器的话必须转化成es5的语法

import是编译时调用,所以必须放在文件开头

import是解构过程,但是目前所有的引擎都还没有实现import,我们在node中使用babel支持ES6,也仅仅是将ES6转码为ES5再执行,import语法会被转码为require

#模块功能说明

electron.app:负责管理Electron 应用程序的生命周期

electron.BrowserWindow:负责创建窗口

globalShortcut:模块可以在操作系统中注册/注销全局快捷键, 以便可以为操作定制各种快捷键

Menu:创建原生应用菜单和上下文菜单

ipcMain:当在主进程中使用时,它处理从渲染器进程(网页)发送出来的异步和同步信息。 从渲染器进程发送的消息将被发送到该模块

Notification:创建OS(操作系统)桌面通知

fs:在 NodeJS 中,所有与文件操作都是通过 fs 核心模块来实现的,包括文件目录的创建、删除、查询以及文件的读取和写入,在fs 模块中,所有的方法都分为同步和异步两种实现,具有 sync 后缀的方法为同步方法,不具有 sync 后缀的方法为异步方法

path:Node.js path 模块提供了一些用于处理文件路径的小工具

screen:检索有关屏幕大小、显示器、光标位置等的信息

shell:提供与桌面集成相关的功能

webContents:渲染以及控制 web 页面

ffi(Foreign Function Interface):node调用动态链接库(.so/.dll文件),解决NodeJS的本地调用问题,其流程就相当于Windows下的LoadLibrary()和GetProcAddress(),亦可以理解为NodeJS下的平台调用。

sql.js:sqlite的Webassembly版,使用上和sqlite基本没有区别,一个开箱即用的sql库

child_process.exec(): 衍生一个 shell 并在该 shell 中运行命令,当完成时则将stdout和stderr传给回调函数

#变量说明

__dirname:总是指向被执行 js 文件的绝对路径

__filename:获取当前模块文件的带有完整绝对路径的文件名

#为什么要用dll

需要使用系统 API 操作或扩展应用程序;

需要调用第三方的接口API,特别是与硬件设备进行通信,而这些接口 API 基本上都是通过 C++ 动态链接库(DLL)实现的;

需要调用C++实现的一些复杂算法等。

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

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

相关文章

无法启动mysqll1006_CentOS7下MySQL服务启动失败原因及解决方法

在重启阿里的CentOS7服务器后,重启MySQL 出现错误Starting mysqld (via systemctl):Job for mysqld.service failed because the control process exited with error code.See "systemctl status mysqld.service" and "journalctl -xe" fordetails.[FAILED…

html5判断多选框是否选择的函数,复选框(checkbox)、多选框

1、需求分析可同时选中多个选项,实现全选、全不选、反选等功能。2、技术分析基础的HTML、CSS、JavaScript。3、详细分析3.1 HTML部分图示是一个列表加底部一段文字说明,列表包含三个部分,整体是一个多选列表,上部是总的选项&#…

layer调用父页面方法_Ruby for SketchUp之图层【Layer】

我们学习了群组、组件及组件定义,今天来看看图层【Layer】,在Sketchup2020版本中已经更名为“标记”,如图那么图层在我们建模过程中能带来哪些便利呢?可以快速的隐藏同一图层内所有东西,而不需要逐一选择并右键点击隐藏…

html盒子有哪些属性,盒子模型有哪些属性 在html5中哪些元素具有盒子模型

HTML盒模型基本属性有哪些CSS盒子模型就是在CSS技术所使用的一种思维模型。CSS假定所有的HTML文档元素都生成一个描述该元素在HTML文档布局中所占空间的矩形元素框,可以形象地将其看作是一个盒子。通过定义一系列与盒子相关的属性,可极大地丰富和促进各个…

huffman编码的程序流程图_F28379D之CLB解码多摩川编码器2——LIB版例程讲解(原创)...

我在第一篇文章中已经跟大家介绍过379解码多摩川编码器的一些入手小知识,链接如下TMS320F28379D之CLB解码多摩川编码器1——入手小知识(原创)请大家一定要看入手小知识,再来看例程分析。今天跟大家分析一下TI的官方例程。首先&…

html统计表合并单元格的快捷键,word怎样设置合并单元格快捷键

word2010中合并单元格的快捷键是什么?求解答。合并单元格没有快捷键,不过有个f4是重复上一步操作,所以你要合并多个单元格,那么你可以先点一合并单元格,然后选定你要合并的区域。WORD合并单元格的快捷键怎么设置word合并单元格快…

fcm 服务器接入 golang_Golang 写的即时通讯服务器 im(服务组件形式)

简要介绍im是一个即时通讯服务器,代码全部使用golang完成。主要功能1.支持tcp,websocket接入2.离线消息同步3.单用户多设备同时在线4.单聊,群聊,以及超大群聊天场景5.支持服务水平扩展gim和im有什么区别?gim可以作为一…

html 手机分辨率,移动端各种分辨率手机屏幕----适配方法集锦

1.使用viewport,html文件中在内添加meta,简单粗暴:2.加判断复杂点的viewport,可以封装成一个js,每次新建html时调用.js即可:var phoneWidth parseInt(window.screen.width);var phoneScale phoneWidth/75…

橡胶支座抗压弹性模量计算公式_隔震支座的这些力学特性您都掌握了吗?

隔震支座叠层橡胶隔震支座,是隔震设计中应用最为广泛的隔震装置。了解隔震支座的力学特性,在软件中设置正确的参数,是做好隔震设计最基本的前提。那么,隔震支座的这些特性您都掌握了吗?叠层橡胶隔震支座叠层橡胶隔震支…

综合基础知识计算机,计算机综合基础知识总结.doc

计算机综合基础知识总结计算机专业知识试题计算机专业知识试题1.???? 一个字节包含的二进制位数是(?? )。A. 8位???? B. 16位???????????????? C. 32位???????????????? D. 256位2.???? 既可作为输入又可作为输出设备的是(???…

asp.net button创建控件时出错_Tkinter Radiobutton控件

单选按钮是一种可在多个预先定义的选项中选择出一项的 Tkinter 控件 。单选按钮可显示文字或图片,显示文字时只能使用预设字体,该控件可以绑定一个 Python 函数或方法,当单选按钮被选择时,该函数或方法将被调用。单选按钮&#xf…

从网络访问计算机不能添加用户名,windows7 和 XP 能互相用\\ip访问,但是不能通过计算机名访问...

只要你的二台机器(winxp、win7)都能PING通对方的IP地址,并且能够通过IP正常访问,只是不能通过同一工作组的计算机名访问(其实,你先PING过一次要使用的对方的计算机名,就能直接在地址栏中输入\\计算机名 来访问了 只是在 网络 中仍…

jitter 如何优化网络_抖音优化该怎么做?

抖音在国内是比较知名的短视频运营商,也有很大的流量市场。这块优化好了,不管是对于用户还是企业来说,在品牌宣传上来说,作用还是蛮大的。抖音优化和电脑端优化,还是有所区别的,这里参考的是点赞数、评论以…

性价比高台式计算机,2021年台式电脑什么牌子好,性价比高?

大家都知道买台式电脑最主要是性价比高,用最少的价钱买到最好的性能配置,但那些大老牌子为了赚平民百姓的钱售价实在贵得太离谱了,性价比非常低今年什么台式电脑性价比最高?台式电脑配置推荐 组装电脑配置单 电脑配置方案-装机...…

golang 数组组合成最小的整数_golang数组-----寻找数组中缺失的整数方法

问题:由n-1个整数组成的未排序数组,元素都是1~n的不同整数,找出其中缺失的整数方法一:思路:是原数组的和 减去 丢失元素后的数组的和,就得到丢失的元素了代码如下:package mainimport ("er…

计算机专业线性代数教学大纲,《线性代数》课程教学大纲

一、课程简介线性代数是讨论代数学中线性关系经典理论的课程,它具有较强的抽象性与逻辑性,是高等学校工科本科各专业的一门重要的基础理论课,也是硕士研究生入学全国统一考试中必考的数学课程之一。由于线性问题广泛存在于科学技术的各个领域…

yuv420p 详解_图文详解YUV420数据格式

一.YUV格式与RGB格式的换算RGB 转换成 YUVY (0.257 * R) (0.504 * G) (0.098 * B) 16Cr V (0.439 * R) - (0.368 * G) - (0.071 * B) 128Cb U -( 0.148 * R) - (0.291 * G) (0.439 * B) 128YUV 转换成 RGBB 1.164(Y - 16) 2.018(U - 128)G 1.164(Y - 16) - 0.813…

计算机存储器发展历史,存储器及其发展历史与前景(4页)-原创力文档

存储器及其发展历史与前景高兴(电子信息科学与技术专业12-1班)摘 要:存储器件是计算机系统的重要组成部分,现代计算机的内存储器多采用半导体存储器。由于RAM的存取速度比ROM快的多,其成为内存的主要组成元件。内存发展主要经历了FP DRAM(快…

jq父级绑定事件的意义_用jQuery.delegate()将事件绑定在父元素上面

1.先看看官方的示例:$(document).ready(function(){$("div").delegate("button","click",function(){$("p").slideToggle();});});这是一个段落。请点击这里2.该方法的定义如下:$(selector).delegate(childSele…

计算机师范类算师范教育类吗,师范教育类专业和计算机类专业,两者相比,哪个更适合自考生报读...

原标题:师范教育类专业和计算机类专业,两者相比,哪个更适合自考生报读一、师范教育类专业大部分毕业生的就业方向都是在教育行业,互联网的发展,教学教育有了网络课,让人们随时随地都可以学习,也…