济南济南网站建设电商手机网站开发

web/2025/10/6 6:41:30/文章来源:
济南济南网站建设,电商手机网站开发,电子技术支持 东莞网站建设,如何做网站豆瓣Electron是一个跨平台的桌面应用程序开发框架#xff0c;它允许开发人员使用Web技术#xff08;如HTML、CSS和JavaScript#xff09;构建桌面应用程序#xff0c;这些应用程序可以在Windows、macOS和Linux等操作系统上运行。 Electron的核心是Chromium浏览器内核和Node.js…Electron是一个跨平台的桌面应用程序开发框架它允许开发人员使用Web技术如HTML、CSS和JavaScript构建桌面应用程序这些应用程序可以在Windows、macOS和Linux等操作系统上运行。 Electron的核心是Chromium浏览器内核和Node.js运行时环境。Chromium内核提供了现代浏览器的功能例如HTML5和CSS3支持JavaScript引擎等而Node.js运行时环境则提供了服务器端JavaScript的能力和模块系统这使得开发人员可以使用Node.js的模块和工具来构建桌面应用程序。 Electron 案例 Visual Studio Code由Microsoft开发的跨平台代码编辑器支持多种编程语言和插件扩展。使用Electron和TypeScript构建。Atom由GitHub开发的跨平台代码编辑器支持多种编程语言和插件扩展。使用Electron和CoffeeScript构建。Postman由Postman Inc.开发的API测试和开发工具允许用户轻松地测试和调试REST API。使用Electron和React构建。 创建项目 dev # 创建Vue项目npm init vue # 安装依赖 npm install # 一定要安装成开发依赖 npm install electron electron-builder -D # 安装超时 请使用某宝镜像 或者XX上网 npm config set electron_mirrorhttps://registry.npmmirror.com/-/binary/electron/开发环境启动electron 我们希望npm run dev的时候直接把electron也启动起来而不是开两个启动一次vite再启动一次electron 第一步我们需要先建立一个文件夹 在根目录创建一个plugins编写vite插件帮我们启动electron plugins vite.electron.dev.ts //编写electron开发模式vite.electron.build.ts //打包electron项目 index.htmlsrc main.tsApp.vuebackground.ts //手动创建文件用于编写electron package.jsontsconfig.jsonvite.config.ts background.ts import { app, BrowserWindow } from electron// 等待Electron应用就绪后创建BrowserWindow窗口 app.whenReady().then(async () {const win await new BrowserWindow({width: 800,height: 600,// 配置窗口的WebPreferences选项用于控制渲染进程的行为webPreferences: {nodeIntegration: true, // 启用Node.js集成contextIsolation: false, // 禁用上下文隔离webSecurity: false, // 禁用web安全策略}})// 根据命令行参数加载URL或本地文件if (process.argv[2]) {win.loadURL(process.argv[2])} else {win.loadFile(index.html)} })这段代码创建了一个Electron应用程序的入口文件。该文件使用了Electron的app和BrowserWindow模块来创建一个窗口。在应用程序准备就绪后它会创建一个新的BrowserWindow对象并将其设置为800x600像素的大小。窗口的webPreferences选项用于配置渲染进程的行为例如启用Node.js集成、禁用上下文隔离和web安全策略等。 接着该代码检查命令行参数如果有参数则加载URL否则加载本地文件index.html。在开发模式下可以将URL指向本地的开发服务器以便实现热更新和实时调试。在生产模式下需要将URL指向本地的index.html文件以便在本地运行Electron应用程序。 在这段代码中app.whenReady()函数用于在Electron应用程序准备就绪后执行回调函数。该函数返回一个Promise对象可以使用async/await语法来等待应用程序就绪后执行其他操作。在这个例子中我们使用await关键字来等待BrowserWindow对象的创建完成。 vite.electron.dev.ts // 导入需要使用的类型和库 import type { Plugin } from vite import type { AddressInfo } from net import { spawn } from child_process import fs from fs// 导出Vite插件函数 export const viteElectronDev (): Plugin {return {name: vite-electron-dev,// 在configureServer中实现插件的逻辑configureServer(server) {// 定义初始化Electron的函数const initElectron () {// 使用esbuild编译TypeScript代码为JavaScriptrequire(esbuild).buildSync({entryPoints: [src/background.ts],bundle: true,outfile: dist/background.js,platform: node,target: node12,external: [electron]})}// 调用初始化Electron函数initElectron()// 监听Vite的HTTP服务器的listening事件server?.httpServer?.once(listening, () {// 获取HTTP服务器的监听地址和端口号const addressInfo server?.httpServer?.address() as AddressInfoconst IP http://localhost:${addressInfo.port}// 启动Electron进程let electronProcess spawn(require(electron), [dist/background.js, IP])// 监听主进程代码的更改fs.watchFile(src/background.ts, () {// 杀死当前的Electron进程electronProcess.kill()// 重新编译主进程代码并重新启动Electron进程initElectron()electronProcess spawn(require(electron), [dist/background.js, IP])})// 监听Electron进程的stdout输出electronProcess.stdout?.on(data, (data) {console.log(日志: ${data});});})}} }configureServer是Vite的一个插件钩子函数用于在Vite开发服务器启动时执行一些自定义逻辑。该函数接受一个ServerOptions对象作为参数该对象包含有关当前Vite服务器的配置信息。在这个钩子函数中您可以访问Vite服务器的HTTP服务器对象httpServerWebSocket服务器对象wsServer和Vite的构建配置对象config等。您可以使用这些对象来实现各种功能例如自定义路由、添加中间件、实现实时重载和调试等。 esbuild.buildSync() entryPoints指定要编译的入口文件这里是src/background.ts。bundle指定是否打包所有依赖项这里是true表示需要打包所有依赖项。outfile指定输出文件的路径和名称这里是dist/background.js。platform指定编译的目标平台这里是node表示编译为Node.js可用的代码。target指定编译的目标JavaScript版本这里是node12表示编译为Node.js 12及以上版本可用的代码。external指定不需要被打包的外部依赖项这里是[electron]表示electron模块不需要被打包。 在这段代码中esbuild会将src/background.ts文件编译为JavaScript 并且放入dist fs.watch 主要实现热更新 每次background.ts 修改完成就会重新启动electron进程 vite.electron.build.ts import type { Plugin } from vite import * as electronBuilder from electron-builder import path from path import fs from fs// 导出Vite插件函数 export const viteElectronBuild (): Plugin {return {name: vite-electron-build,// closeBundle是Vite的一个插件钩子函数用于在Vite构建完成后执行一些自定义逻辑。closeBundle() {// 定义初始化Electron的函数const initElectron () {// 使用esbuild编译TypeScript代码为JavaScriptrequire(esbuild).buildSync({entryPoints: [src/background.ts],bundle: true,outfile: dist/background.js,platform: node,target: node12,external: [electron],})}// 调用初始化Electron函数initElectron()// 修改package.json文件的main字段 不然会打包失败const json JSON.parse(fs.readFileSync(package.json, utf-8)) json.main background.jsfs.writeSync(fs.openSync(dist/package.json, w), JSON.stringify(json, null, 2))// 创建一个空的node_modules目录 不然会打包失败fs.mkdirSync(path.join(process.cwd(), dist/node_modules));// 使用electron-builder打包Electron应用程序electronBuilder.build({config: {appId: com.example.app,productName: vite-electron,directories: {output: path.join(process.cwd(), release), //输出目录app: path.join(process.cwd(), dist), //app目录},asar: true,nsis: {oneClick: false, //取消一键安装}}})}} }打包主要依靠electron-builder 这个库 他的参数是有很多的这儿只是简单演示 closeBundle 我们electron打包是需要index.html 所以我们先等vite打完包之后vite会自动调用这个钩子 然后在这个钩子里面打包electron vite.config.ts import { fileURLToPath, URL } from node:urlimport { defineConfig } from vite import vue from vitejs/plugin-vue import {viteElectronDev} from ./plugins/vite.electron.dev import {viteElectronBuild} from ./plugins/vite.electron.build // https://vitejs.dev/config/ export default defineConfig({plugins: [vue(),viteElectronDev(),viteElectronBuild()],base:./, //默认绝对路径改为相对路径 否则打包白屏resolve: {alias: {: fileURLToPath(new URL(./src, import.meta.url))}} })

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

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

相关文章

电器网站模板网络舆情的应对及处理

效果:3D文字超过5位自动换行 1.随意输入一段字符串测试,创建string临时变量,用于迭代存储字符串 2.当字符串遍历至第“换行长度”(我这里是5)位时,附加一次空行

摄影网站设计理念好用的建站系统

文章目录一、命令介绍grepegrepfgrep二、正则表达式元字符扩展集三、POSIX 字符集一、命令介绍 grep 一种强大的文本搜索工具,用于在文件内查找指定的字符串,在不使用转义符的前提下支持基本的正则表达式来搜索文本,并把匹配的行打印出来。…

无锡网站建设要求做一个外贸网站

文章目录 前言区别总结后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:react.js 🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误,感谢大家指出…

福建设计网站立方米网站建设

背景 我们有一个接口要支持后端排序,所以需要在请求对象里面增加两个参数:排序字段名、排序方式(asc、desc)。 正好基础jar包中有一个类可以直接拿来用。 Data public class OrderByItem {private String column;private Strin…

用织梦怎么修改网站首页商品顺序优化软件有哪些

参考文档 useShareAppMessage 注意 使用时,必须为页面配置 enableShareAppMessage: true。(修改配置文件后请重新编译项目)当 onShareAppMessage 没有触发时,请在页面配置中设置 enableShareAppMessage: true只有定义了此事件处…

东莞网站优化排名怎样建设学校网站首页

更新:我下面的原始答案很不充分,因为我花了三年的时间开发FastClasspathScanner,并提交了大量关于某些类路径环境无法使用该库的错误报告。 FastClasspathScanner现在可以处理许多复杂的类路径规范机制。 在一般情况下(即使扫描它)&#xff0…

外贸网站建设网站开发学校作业怎么做网站

目录 一、文件的概念 二、文件系统 三、文件类型 四、使用 File 类进行文件操作 4.1 File 类中的 pathSeparator 属性 4.2 File 类构造方法 4.3 File 类常用方法 一、文件的概念 什么是文件? 广义上的“文件”是指抽象化的操作系统中的硬件设备和软件资源&a…

花80亿美元建空间站国际最著名建筑设计大奖

本章我们会对失效算法做个简单介绍,包括常用的失效算法(先来先淘汰(FIFO)、最久未用淘汰(LRU)、最近最少使用(LFU))的概述、实现方式、典型场景做个说明。 什么是失效算…

制作php网站wordpress 去版权

随着"一带一路"倡议的深入推进,中国基建企业"走出去"的步伐正在加快。与之相应,建筑模板产品作为工程建设的重要材料,其国际化供应也愈发受到重视。在众多建筑模板生产企业中,贵港市能强优品木业有限公司以其卓越的产品质量和丰富的出口经验,成为了国内知名…

自贡市城市建设投资开发集团有限公司网站小内存 wordpress 优化

pytest特短 pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点: 简单灵活,容易上手 支持参数化 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试&#xff08…

新加坡服务器网站需要备案么建设银行网站怎么登陆密码忘了怎么办

在开发Android Launcher时,需要关注性能、用户体验、权限管理、兼容性等方面,同时遵循相关的开发者政策和最佳实践。有几个重要的注意事项,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎…

哈尔滨网站建设还不如ip代理提取网站源码

WAR包WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。War专用于Web方面。大部分的JAVA WEB工程,都是打成WAR包进行发布的。War是一个web模块,其中需要包括WEB-INF&#xff0…

网站建设初期工作方案seo搜索引擎优化介绍

一、原理分析 使用定时器输出PWM(脉宽调制)信号是通过微控制器的定时器模块来生成一种周期性的脉冲信号,通过控制脉冲的高电平时间(占空比)来控制输出信号的平均功率。以下是生成PWM信号的基本原理概述: 定…

网站制作q电子商务公司有什么职位

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置. 英文描述为: # /etc/profile # System wide environment and startup programs, for login setup # Functions and alias…

北京网站定制价格表网址制作

文章目录 学术工作公司为什么要使用日记应用程序?定制总结 本文翻译整理自: https://blog.langchain.dev/langfriend/ (发布于2024 年 3 月 28 日) 在LangChain我们最感兴趣的概念之一就是内存。 每当我们对一个概念感兴趣时,我们都喜欢构建一…

天津猎头公司知名seo电话

转载:http://blog.csdn.net/ljd_1986413/article/details/7940938 服务器程序和客户端程序应当分别运行在两台计算机上。 在运行服务器端的计算机终端执行:./file_server 在运行客户端的计算终端上执行:./file_client ipaddr_server 然后根…

现在网站建站的主流语言是什么免费seo网站优化工具

Scala 函数(Function) 概述 将一段逻辑进行封装便于进行重复使用,被封装的这段逻辑就是函数。在Scala中,必须通过def来定义函数 基本语法 def 函数名(参数列表) : 返回值类型 {函数体return 返回值 }案例 // 案例:定义函数计算两个整数的…

商业网站的后缀一般为在线爬取网页源码

P2495 [SDOI2011]消耗战 题目描述 详见:P2495 [SDOI2011]消耗战 Solution 此题是虚树的经典版子题吧qwq。 是不是直接贴代码就行了啊(反正不是luogu题解,没有人查)。 大概就是先建出虚树(一般给定一堆关键点的题…

校园网站建设方向做网站的任务书

AI人工智能在建筑智能化工程设计的应用 相关政策: 建筑智能化工程设计资质是为了合理设计各种智能化系统,让它们有机地结合成为有效的整体作用。在工程设计标准中,智能化资质设计全称为建筑智能化系统专项设计资质。企业一旦具备智能化设计资…

各种网站程序的优势揭阳网站建站网站

文章目录 一、线程的概念1. 什么是线程Linux下并不存在真正的多线程,而是用进程模拟的!Linux没有真正意义上的线程相关的系统调用!原生线程库pthread 2. 线程和进程的联系和区别3. 线程的优点4. 线程的缺点5. 线程异常6. 线程用途 二、二级页…